
一、写在前面
经常有粉丝向我抱怨,为什么每次发放资料都用百度云,自己下载了一遍之后还得再上传一遍服务器才能分析。其实大家大可不必这么周转,百度云也有 Linux的发行版本,利用python包bypy来管理/传输百度云盘资源也很方便(别问我为什么不用阿里云、腾讯云。。。,我用了这些还会有人提出相同的问题)。
如果你对下面的教程比较迷茫,那么你可以先行学习Linux教程:
二、通过bypy使用百度云
首先需要确保你的Linux环境中有python(生信Python速查手册)我这里的版本是3.10.0。
# 安装bypy
pip install bypy
# 配置账号密码:
bypy info
会返回以下页面:

用浏览器访问上面提供的网址,登录自己的百度云盘账号:

授权后会返回授权码,复制授权码:

回到终端粘贴授权码,回车后会自动配置百度网盘账号密码及初始设置,返回百度云盘的存储信息,下面的信息会与各位的windows客户端相一致:

配置好之后,在Windows客户端会多出这么一个文件夹,这个文件夹就是Linux和windows交换文件的桥梁:

在Linux终端使用百度云,大家就得使用命令行啦,最常用的是:
1、查看目录下包含哪些内容:
bypy list

/apps/bypy/即为bypy访问的根目录
2、上传文件
bypy upload /path/to/local/file /remote/path
3、下载文件
bypy download /remote/path /path/to/local/file
假如我在“我的网盘/我的应用数据/bypy”下有一个名为test的文件夹,我希望把它下载到我的家目录中,那么我应该:
bypy download test /home/biomamba
下载时也会有进度条:

大文件建议大家挂载在后台下载:程序可以自己跑的,不用盯着
更多用法:
positional arguments:
command operations (quota,
list, etc)
options:
-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://s
tackoverflow.com/que
stions/406230/regula
r-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 'https://pcs.ba
idu.com/rest/2.0/pcs
/manage?method=listh
ost' 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/uploa
d/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: ['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:
{'aria2': '-c -k10M
-x4 -s4 --file-
allocation=none'}
--config-dir CONFIGDIR
specify the config
path [default: /home
/biomamba/.bypy]
-c, --clean remove the token
file (need re-auth)
and upload progress
file, -cc: clean
hash cache file as
well
Commands:
help <command> - provide some information for the command
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
restore <remotepath> - restore a file from the recycle bin
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)
whoami - display the user information
本教程参考: https://github.com/houtianze/bypy