美文网首页
使用bypy直接下载百度网盘数据到服务器?

使用bypy直接下载百度网盘数据到服务器?

作者: 生物信息与育种 | 来源:发表于2022-08-12 17:47 被阅读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)
    

    参考:

    相关文章

      网友评论

          本文标题:使用bypy直接下载百度网盘数据到服务器?

          本文链接:https://www.haomeiwen.com/subject/oousyrtx.html