使用bypy直接下载百度网盘数据到服务器?
2022-08-12 本文已影响0人
生物信息与育种
问题描述
客户一个测序原始数据在百度网盘上待分析。一般思路是下载到本地,再转移到服务器。但这样相当于数据转移两次,如果客户不给你账号密码,可能还得转移三次。而百度网盘这尿性,下载会很慢很慢。
解决方案
网上查了下,百度网盘提供了一个开放的api,使用服务器的命令行即可直接下载数据。
pip install bypy
bypy info
这时会命令行返回一个网址,打开此网址,登录百度网盘之后,得到验证码。(客户提供即可)
返回命令行输入此验证码,即可使bypy得到百度网盘api使用权限,接下来就可以使用bypy管理百度网盘文件的上传下载了。
程序会利用不同的服务器进行认证,认证成功会显示百度网盘的容量,如果一次没成功,可以多试几次。认证成功后,会显示百度网盘空间的大小。
执行 bypy 或者 bypy help。
$ 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 ...]
bypy v1.7.12 - Python client for Baidu Yun (Personal Cloud Storage) 百度云/百度网盘 Python 客户端
注意数据存放在百度网盘的位置
数据需要放在百度网盘一级目录下的apps文件夹,有的可能是“我的应用数据”,我试图新建或修改文件名为apps,显示失败。所以这时“apps”就是“我的应用数据”,比如:
image.png
bypy list
显示百度网盘 /apps(我的应用数据)/bypy 目录下的所有文件。
$ bypy list
/apps/bypy ($t $f $s $m $d):
D RNA-seq OE,Crispr 0 2022-08-12, 16:40:46
$ bypy list RNA-seq\ OE,Crispr/
/apps/bypy/RNA-seq OE,Crispr ($t $f $s $m $d):
D 1.rawdata 0 2022-08-12, 16:40:46
F Report-P101SC18081936-01-J024-B24-21.zip 2002206 2022-08-12, 16:40:46 dbe71e6b7rdd9b9b982a761e93856ae4
$ bypy list RNA-seq\ OE,Crispr/1.rawdata/
/apps/bypy/RNA-seq OE,Crispr/1.rawdata ($t $f $s $m $d):
D C01-1_FRAS210125923-2r 0 2022-08-12, 16:40:46
D C01-2_FRAS210125926-2r 0 2022-08-12, 16:40:46
D C01-3_FRAS210125929-2r 0 2022-08-12, 16:40:46
D mir529-1_FRAS210125925-2r 0 2022-08-12, 16:40:46
D mir529-2_FRAS210125928-2r 0 2022-08-12, 16:40:46
D mir529-3_FRAS210125931-2r 0 2022-08-12, 16:40:46
D OE529-1_FRAS210125924-2r 0 2022-08-12, 16:40:46
D OE529-2_FRAS210125927-2r 0 2022-08-12, 16:40:46
D OE529-3_FRAS210125930-2r 0 2022-08-12, 16:40:46
F checkSize.xls 1604 2022-08-12, 16:40:46 b54e69664u9cbae3a82280c1d096d728
$ bypy list RNA-seq\ OE,Crispr/1.rawdata/C01-1_FRAS210125923-2r
/apps/bypy/RNA-seq OE,Crispr/1.rawdata/C01-1_FRAS210125923-2r ($t $f $s $m $d):
F C01-1_FRAS210125923-2r_1.fq.gz 973524936 2022-08-12, 16:40:46 c35112b4ev1742a0fa870a6406cc3433
F C01-1_FRAS210125923-2r_2.fq.gz 967398012 2022-08-12, 16:40:46 033bd3c38u1630cdbb2ef65d526aa805
F MD5.txt 130 2022-08-12, 16:40:46 303bc7473oc805779418f37abf511c57
下载
上传或者下载百度网盘数据:
## 上传
bypy upload [localpath] [remotepath] [ondup]
或 bypy syncup [localdir] [remotedir] [deleteremote] 上传文件到百度网盘
## 下载
bypy downfile <remotefile> [localpath] 从百度网盘下载单个文件
bypy downdir [remotedir] [localdir] 从百度网盘下载整个文件夹
不加路径时,则上传/下载当前目录。
特别注意目录的表示方法,只需要写上bypy后的路径即可。
错误的表示方法:
$ bypy downfile 我的网盘/我的应用数据/bypy/RNA-seq\ OE,Crispr/1.rawdata/OE529-3_FRAS210125930-2r/OE529-3_FRAS210125930-2r_1.fq.gz
<I> [16:54:02] OE529-3_FRAS210125930-2r_1.fq.gz <- /apps/bypy/我的网盘/我的应用数据/bypy/RNA-seq OE,Crispr/1.rawdata/OE529-3_FRAS210125930-2r/OE529-3_FRAS210125930-2r_1.fq.gz
<E> [16:54:03] ----------------------------------------------------------------
Error 31066
正确的表示方法:
$ bypy downfile RNA-seq\ OE,Crispr/1.rawdata/OE529-3_FRAS210125930-2r/OE529-3_FRAS210125930-2r_1.fq.gz
<I> [16:54:53] OE529-3_FRAS210125930-2r_1.fq.gz <- /apps/bypy/RNA-seq OE,Crispr/1.rawdata/OE529-3_FRAS210125930-2r/OE529-3_FRAS210125930-2r_1.fq.gz
[____________________] 1% (20.0MB/1021.0MB)
如果不需要并行下载,可以选择当前目录直接下载:
$ bypy downdir
<I> [16:48:54] RNA-seq OE,Crispr/Report-P101SC18081936-01-J024-B24-21.zip <- /apps/bypy/RNA-seq OE,Crispr/Report-P101SC18081936-01-J024-B24-21.zip
[====================] 100% (1.9MB/1.9MB) ETA: (116kB/s, 16s gone) <I> [16:49:12] RNA-seq OE,Crispr/1.rawdata/checkSize.xls <- /apps/bypy/RNA-seq OE,Crispr/1.rawdata/checkSize.xls
[====================] 100% (1.6kB/1.6kB) ETA: (3kB/s, gone) <I> [16:49:14] RNA-seq OE,Crispr/1.rawdata/C01-1_FRAS210125923-2r/C01-1_FRAS210125923-2r_1.fq.gz <- /apps/bypy/RNA-seq OE,Crispr/1.rawdata/C01-1_FRAS210125923-2r/C01-1_FRAS210125923-2r_1.fq.gz
[====================] 100% (928.4MB/928.4MB) ETA: (648kB/s, 24m26s gone) <I> [17:13:41] RNA-seq OE,Crispr/1.rawdata/C01-1_FRAS210125923-2r/C01-1_FRAS210125923-2r_2.fq.gz <- /apps/bypy/RNA-seq OE,Crispr/1.rawdata/C01-1_FRAS210125923-2r/C01-1_FRAS210125923-2r_2.fq.gz
[====================] 100% (922.6MB/922.6MB) ETA: (3MB/s, 5m15s gone) <I> [17:18:57] RNA-seq OE,Crispr/1.rawdata/C01-1_FRAS210125923-2r/MD5.txt <- /apps/bypy/RNA-seq OE,Crispr/1.rawdata/C01-1_FRAS210125923-2r/MD5.txt
关于速度
bypy不会加速,要加速还是需要充会员才行。非会员很慢,上传稍微快点。
充值前(半天才1%):
$ bypy downfile RNA-seq\ OE,Crispr/1.rawdata/OE529-3_FRAS210125930-2r/OE529-3_FRAS210125930-2r_1.fq.gz
<I> [16:54:53] OE529-3_FRAS210125930-2r_1.fq.gz <- /apps/bypy/RNA-seq OE,Crispr/1.rawdata/OE529-3_FRAS210125930-2r/OE529-3_FRAS210125930-2r_1.fq.gz
[____________________] 1% (20.0MB/1021.0MB) ^CSignal 2 received, Abort
充值后(5min左右完成一个fq下载):
$ bypy downfile RNA-seq\ OE,Crispr/1.rawdata/OE529-3_FRAS210125930-2r/OE529-3_FRAS210125930-2r_1.fq.gz
<I> [17:06:40] OE529-3_FRAS210125930-2r_1.fq.gz <- /apps/bypy/RNA-seq OE,Crispr/1.rawdata/OE529-3_FRAS210125930-2r/OE529-3_FRAS210125930-2r_1.fq.gz
<I> [17:06:41] Local and remote file size DOESN'T match
[====================] 100% (1021.0MB/1021.0MB) ETA: (3MB/s, 5m23s gone)
参考: