分享交流
合作共赢!

Ubuntu 18.04 TLS通过命令行使用百度网盘

一、安装部署

1.下载pip

如果系统没有pip工具包,需要提前下载,如下:

apt install python-pip

2.安装百度网盘相关工具

pip install requests -i https://pypi.doubanio.com/simple
pip install bypy -i https://pypi.doubanio.com/simple

二、授权

# 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
723803d94825287606c895b85ab554c3
Authorizing, please be patient, it may take upto 300 seconds...
Authorizing with the Heroku server ...

 

 

由于服务器qiang的原因,此方法目前无法通过认证,唯有代理或海外server才可以正常使用。

如下所示:

# bypy info
Please visit:
https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4EpCsau1oS0MplgMKNBn&response_type=code&redirect_uri=oob&scope=basic+netdisk
And authorize this app
Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done
9e4499fc84019041a998ce43eb5622e0
Authorizing, please be patient, it may take upto 300 seconds...
Authorizing with the Heroku server ...
Heroku server failed, authorizing with the Heroku1 server ...
Successfully authorized
Quota: 12.020TB
Used: 4.812TB

认证通过后在百度网盘会自动创建一个名为“bypy”的目录,此目录会作为上传下载的根目录使用,如果指定的目录不存在,会在bypy目录下面自动创建,如下截图所示:

三、使用

如果认证通过,即可用bypy命令行工具上传下载等操作,可以支持的功能还是比较多的,详细功能参考如下命令使用帮助。

bypy命令使用说明参考如下:

# bypy
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.7.2 - 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 - display 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)
whoeami - display the user information

实例:

上传文件到百度网盘:

# ls
sql-backup-20211031.tar.gz zhangqiongjie_wordpress_20211030.tar.gz
# bypy upload ./ wordpress
[====================] 100% (257.5MB/257.5MB) ETA: (470kB/s, 7m53s gone) Combining the following MD5 slices:
fce602bcb79ee2b3a6476555c5617d42
019370124845c6de08b727c1c52a054c
615f047b9d0c6e1db13e66bdf74b1b0f
7f02204f95e98f4ff2965acb43ce636f
7f98b374f789af00dad92d7421a2edd0
f8495aeb67fed02accc4dec0281a403c
f604a6edfc888bf0474bf74f60a79c24
fbc79df5bf8295fb02fab228aa04c970
e3d99d85cc997e682e9ffb1d7bb4f43d
38abf643f955916e9499a10e66b19202
27eac56a489fc0cacee7bf24fcfe1954
bb08e68533b01265955a393707338ae6
4cc09c2fdd7198ea7312afe5a05f1378

其他参考:
Centos系统下bypy+aria2下载百度网盘实现百度云转存方案 – 天下无鱼 (shikey.com)
https://javamana.com/2021/03/20210308060140974k.html

赞(0) 打赏
未经允许不得转载:琼杰笔记 » Ubuntu 18.04 TLS通过命令行使用百度网盘
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

分享交流,合作共赢!

联系我们加入QQ群

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏