Linux命令行使用bypy上传文件到百度网盘
文章目录1.系统环境2.安装软件工具3.授权登录4.启动bypy可能会缺少的模块5.测试上传和同步本地文件到云盘6.查看bypy帮助列表7.使用bypy工具的一些感受百度网盘有免费的 2TB 存储空间,而且有百度做靠山,不怕数据丢失,安全可靠。比较喜欢 bypy 的方式,使用简单,方便,对于备份一些小数据到云盘还是很方便的。下边简单的总结一下如何使用 bypy 实现百度网盘数据的同步。这是一个百度
·
百度网盘有免费的 2TB 存储空间,而且有百度做靠山,不怕数据丢失,安全可靠。比较喜欢 bypy 的方式,使用简单,方便,对于备份一些小数据到云盘还是很方便的。下边简单的总结一下如何使用 bypy 实现百度网盘数据的同步。
这是一个百度云的 Python 客户端,其主要目的和功能,就是为 Linux 使用者提供一种在命令行下,使用百度云盘中2T存储空间的方法。它提供文件列表、下载、上传、比较、向上同步、向下同步,等操作。
1.系统环境
Linux系统+Python2.7
2.安装软件工具
安装pip命令,通过pip安装bypy,bypy依赖于requests
[root@bypy ~]# yum install python-pip
[root@bypy ~]# pip install requests bypy -i https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/python2.7/site-packages
Collecting bypy
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/08/c1/592603cde161cbabf98b360ca09f53730f86b5c281f2b402fd691144ea38/bypy-1.6.9-py2.py3-none-any.whl (237kB)
100% |████████████████████████████████| 245kB 1.4MB/s
Collecting multiprocess>=0.70.0 (from bypy)
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/58/17/5151b6ac2ac9b6276d46c33369ff814b0901872b2a0871771252f02e9192/multiprocess-0.70.9.tar.gz (1.6MB)
100% |████████████████████████████████| 1.6MB 524kB/s
Collecting requests-toolbelt>=0.8.0 (from bypy)
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/60/ef/7681134338fc097acef8d9b2f8abe0458e4d87559c689a8c306d0957ece5/requests_toolbelt-0.9.1-py2.py3-none-any.whl (54kB)
100% |████████████████████████████████| 61kB 3.5MB/s
Collecting dill>=0.3.1 (from multiprocess>=0.70.0->bypy)
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/c7/11/345f3173809cea7f1a193bfbf02403fff250a3360e0e118a1630985e547d/dill-0.3.1.1.tar.gz (151kB)
100% |████████████████████████████████| 153kB 2.1MB/s
Installing collected packages: dill, multiprocess, requests-toolbelt, bypy
Running setup.py install for dill ... done
Running setup.py install for multiprocess ... done
Successfully installed bypy-1.6.9 dill-0.3.1.1 multiprocess-0.70.9 requests-toolbelt-0.9.1
You are using pip version 8.1.2, however version 20.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
3.授权登录
执行 bypy info,显示下边信息。认证通过后可以看到云盘大小所使用信息。
[root@bypy ~]# bypy info
Please visit: # 访问下边这个连接,复制授权码
https://openapi.baidu.com/oauth/2.0/authorize?scope=basic+netdisk&redirect_uri=oob&response_type=code&client_id=q8WE4EpCsau1oS0MplgMKNBn
And authorize this app
Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done # 提示在下边粘贴授权码
e073315d53ca423530ba98c799d67e32 # 粘贴页面中的授权码按Enter确认
Authorizing, please be patient, it may take upto 300 seconds...
Authorizing with the Heroku server ...
Successfully authorized
Quota: 5.007TB
Used: 2.240TB
根据提示,通过浏览器访问下边的https链接,如果此时百度网盘账号正在登陆,会出现长串授权码,复制。将授权码粘贴至代码中。
4.启动bypy可能会缺少的模块
如果出现以下提示,需要安装python-urllib3模块
[root@bypy ~]# bypy info
<E> [08:24:43] Something seems wrong with the urllib3 installation.
Quitting
安装python-urllib3和python-requests模块
[root@bypy ~]# yum install python-urllib3 python-requests
5.测试上传和同步本地文件到云盘
由于百度PCS API权限限制,程序只能存取百度云端/apps/bypy目录下面的文件和目录。我们可以通过命令查看目录下文件
[root@bypy ~]# bypy list
/apps/bypy ($t $f $s $m $d):
如果提示以下错误,没有关系,是因为百度云盘中“我的应用数据”目录中没有bypy目录
[root@bypy ~]# bypy list
<E> [09:00:47] ----------------------------------------------------------------
Error 31066
把本地当前目录下的文件同步到百度云盘:
[root@bypy ~]# bypy upload file.txt
把云盘上的文件同步到本地:
[root@bypy ~]# bypy downfile file.txt
[====================] 100% (0.0B/0.0B)
断开登录授权,重新登录。
[root@bypy ~]# bypy -c
6.查看bypy帮助列表
[root@bypy ~]# bypy help
usage: bypy [-h] [-V] [-d] [-v] [-r RETRY] [-q] [-t TIMEOUT] [-s SLICE]
[--chunk CHUNK] [-e] [-f] [--no-resume-download]
[--include-regex INCREGEX] [--on-dup ONDUP] [--no-symlink]
[--disable-ssl-check] [--cacerts CACERTS] [--mirror MIRROR]
[--select-fastest-mirror] [--rapid-upload-only]
[--resume-download-revert-back RCOUNT] [--move]
[--processes PROCESSES] [--downloader DOWNLOADER]
[--downloader-arguments DOWNLOADER_ARGS] [--config-dir CONFIGDIR]
[-c]
[command [command ...]]
bypy v1.6.9 - Python client for Baidu Yun (Personal Cloud Storage) 百度云/百度网盘 Python 客户端
positional arguments:
command operations (quota, list, etc)
optional arguments:
-h, --help show this help message and exit
-V, --version show program's version number and exit
-d, --debug set debugging level (-dd to increase debugging level,
-ddd to enable HTPP traffic debugging as well (very
talkative)) [default: 0]
-v, --verbose set verbosity level [default: 0]
-r RETRY, --retry RETRY
number of retry attempts on network error [default: 5
times]
-q, --quit-when-fail quit when maximum number of retry failed [default:
False]
-t TIMEOUT, --timeout TIMEOUT
network timeout in seconds [default: 300]
-s SLICE, --slice SLICE
size of file upload slice (can use '1024', '2k',
'3MB', etc) [default: 20 MB]
--chunk CHUNK size of file download chunk (can use '1024', '2k',
'3MB', etc) [default: 20 MB]
-e, --verify verify upload / download [default : False]
-f, --force-hash force file MD5 / CRC32 calculation instead of using
cached value
--no-resume-download resume instead of restarting when downloading if local
file already exists [default: True]
--include-regex INCREGEX
regular expression of files to include. if not
specified (default), everything is included. for
download, the regex applies to the remote files; for
upload, the regex applies to the local files. to
exclude files, think about your regex, some tips here:
https://stackoverflow.com/questions/406230/regular-
expression-to-match-string-not-containing-a-word
[default: ]
--on-dup ONDUP what to do when the same file / folder exists in the
destination: 'overwrite', 'skip', 'prompt' [default:
overwrite]
--no-symlink DON'T follow symbol links when uploading / syncing up
--disable-ssl-check DON'T verify host SSL cerificate
--cacerts CACERTS Specify the path for CA Bundle [default: None]
--mirror MIRROR Specify the PCS mirror (e.g. bj.baidupcs.com. Open 'ht
tps://pcs.baidu.com/rest/2.0/pcs/manage?method=listhos
t' to get the list) to use. [default: pcs.baidu.com]
--select-fastest-mirror
Let the program run some tests and select the fastest
PCS mirror it detectes. [default: False]
--rapid-upload-only only upload large files that can be rapidly uploaded
--resume-download-revert-back RCOUNT
Revert back at least RCOUNT download chunk(s) and
align to chunk boundary when resuming the download. A
negative value means NO reverts. [default: 1]
--move Delete source files/directories after
download/upload/syncdown/syncup is successful (This
will force verification of the files). [default:
False]
--processes PROCESSES
Number of parallel processes. (Only applies to dir
sync/dl/ul). [default: 1]
--downloader DOWNLOADER
downloader to use (use python if not specified). valid
values: [u'aria2'] [default: ]
--downloader-arguments DOWNLOADER_ARGS
arguments for the downloader: normally, the string is
the arguments to be passed to the downloader. however,
when it begins with '@', it will be treated as the
name of file, whose contents will be used as the
downloader arguments (example: when specifying
'@args.txt', file contents of 'args.txt' will be used
as the downloader arguments, not the string
'@args.txt' itself). you can also use environment
variable 'DOWNLOADER_ARGUMENTS' to specify the
downloader arguments (the environment variable has
lower priority compared to this argument). default
values: {u'aria2': u'-c -k10M -x4 -s4 --file-
allocation=none'}
--config-dir CONFIGDIR
specify the config path [default: /root/.bypy]
-c, --clean remove the token file (need re-auth) and upload
progress file, -cc: clean hash cache file as well
Commands:
restore <remotepath> - restore a file from the recycle bin
cdl_add <source_url> [save_path] [timeout] - add an offline (cloud) download task
cdl_addmon <source_url> [save_path] [timeout] - add an offline (cloud) download task and monitor the download progress
cdl_cancel <task_id> - cancel an offline (cloud) download task
cdl_list - list offline (cloud) download tasks
cdl_query <task_ids> - query existing offline (cloud) download tasks
cleancache - remove invalid entries from hash cache file
combine <remotefile> [localfile] [md5s] - try to create a file at PCS by combining slices, having MD5s specified
compare [remotedir] [localdir] - compare the remote directory with the local directory
copy/cp <from> <to> - copy a file / dir remotely at Baidu Yun
delete/remove/rm <remotepath> - delete a file / dir remotely at Baidu Yun
downdir [remotedir] [localdir] - download a remote directory (recursively)
downfile <remotefile> [localpath] - download a remote file.
download [remotepath] [localpath] - download a remote directory (recursively) / file
dumpcache - display file hash cache
list/ls [remotepath] [format] [sort] [order] - list the 'remotepath' directory at Baidu PCS
listrecycle [start] [limit] - list the recycle contents
meta <remotepath> [format] - get information of the given path (dir / file) at Baidu Yun.
mkdir <remotedir> - create a directory at Baidu Yun
move/mv/rename/ren <from> <to> - move a file / dir remotely at Baidu Yun
quota/info - displays the quota information
refreshtoken - refresh the access token
search <keyword> [remotepath] [recursive] - search for a file using keyword at Baidu Yun
stream <remotefile> <localpipe> [format] [chunk] - stream a video / audio file converted to M3U format at cloud side, to a pipe.
syncdown [remotedir] [localdir] [deletelocal] - sync down from the remote directory to the local directory
syncup [localdir] [remotedir] [deleteremote] - sync up from the local directory to the remote directory
upload [localpath] [remotepath] [ondup] - upload a file or directory (recursively)
7.使用bypy工具的一些感受
bypy工具在备份一些文件小的文件数据时还是很好用的,传输速度也还可以接受,可以在系统中设置定时备份,将一些关键数据备份至云盘中。在传输一些大文件时就表现的比较吃力的,主要是速度比较慢。bypy不能使用百度云会员的上传下载权限,可能有方法但是我没有找到,后续找到后进行更新。
更多推荐
已为社区贡献1条内容
所有评论(0)