百度云网盘命令行

背景:个人服务器有些数据需要进行备份到云端,个人有百度云网盘会员,如果有命令行可以将linux服务器上的文件直接上传到百度云那就方便多了。

开源工具bypy

GitHub开源工具bypy,这是基于百度提供的一些服务创建了一些python脚本。

安装

使用默认镜像可能读取超时,个人使用了豆瓣的镜像(前提安装了python)

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

操作

  • 使用bypy info登录, 过程需要访问提示的链接获取对应账号的百度授权码

    $ 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
    ac8f69c9765221463cf97ba04a68772b
    Authorizing, please be patient, it may take upto 300 seconds...
    Quota: 6.009TB
    Used: 591.773GB
  • 使用bypy help获取相关命令帮助文档,操作非常简单

    $ 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 ...]
    
    bypy v1.8.5 - 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 'https://pcs.baidu.com/rest/2.0/pcs/manage?method=listhost' 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: ['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: /Users/mac/.bypy]
    -c, --clean           remove the token file (need re-auth) and upload progress file, -cc: clean hash cache file as well
    
    Commands:
    refreshtoken - refresh the access token
    cdl_add  [save_path] [timeout] - add an offline (cloud) download task
    cdl_addmon  [save_path] [timeout] - add an offline (cloud) download task and monitor the download progress
    cdl_cancel   - cancel an offline (cloud) download task
    cdl_list - list offline (cloud) download tasks
    cdl_query   - query existing offline (cloud) download tasks
    cleancache - remove invalid entries from hash cache file
    combine  [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   - copy a file / dir remotely at Baidu Yun
    delete/remove/rm  - delete a file / dir remotely at Baidu Yun
    downdir [remotedir] [localdir] - download a remote directory (recursively)
    downfile  [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  [format] - get information of the given path (dir / file) at Baidu Yun.
    mkdir  - create a directory at Baidu Yun
    move/mv/rename/ren   - move a file / dir remotely at Baidu Yun
    quota/info - display the quota information
    restore  - restore a file from the recycle bin
    search  [remotepath] [recursive] - search for a file using keyword at Baidu Yun
    stream   [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

发表评论