百度网盘Linux命令行版,上传和下载文件。支持Ubuntu等系统

Linux版 百度网盘使用方法

本文主要的目的就是在Linux环境下通过命令行来使用百度云盘直接在服务器上将数据(比如基因组等大文件)传输到百度网盘,之后可以进行轻松分享,而且还可以支持备份,解决文件的传输和分享难题。

软件简介

bypy是一个Python客户端,用于操作百度网盘,提供了丰富的命令行操作。该工具能够直接在Linux服务器上进行大文件的传输,支持多线程操作,本文将介绍如何使用bypy进行百度云的上传、下载、同步等操作。

安装

pip install bypy

命令

bypy提供了多种操作命令,具体如下:

  • quota:显示百度云存储配额信息
  • list:列出指定目录下的文件列表
  • upload:上传本地文件到百度云
  • download:从百度云下载文件到本地
  • syncup:将本地文件同步到百度云
  • syncdown:将百度云文件同步到本地
  • delete:删除百度云上的文件
  • makedir:在百度云上创建目录
  • move:移动百度云上的文件
  • copy:复制百度云上的文件
  • compare:比较本地和云文件的差异

如果运行报错

bypy --help
Traceback (most recent call last):
  File "/home/eyeglasses/.local/bin/bypy", line 5, in <module>
    from bypy.bypy import main
  File "/home/eyeglasses/.local/lib/python3.9/site-packages/bypy/__init__.py", line 12, in <module>
    from .bypy import ByPy
  File "/home/eyeglasses/.local/lib/python3.9/site-packages/bypy/bypy.py", line 91, in <module>
    from .requester import RequestsRequester
  File "/home/eyeglasses/.local/lib/python3.9/site-packages/bypy/requester.py", line 16, in <module>
    import requests
  File "/home/eyeglasses/.local/lib/python3.9/site-packages/requests/__init__.py", line 43, in <module>
    import urllib3
  File "/home/eyeglasses/.local/lib/python3.9/site-packages/urllib3/__init__.py", line 41, in <module>
    raise ImportError(
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips  26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168

则是因为 urllib3 v2.0支持openssl 1.1.1以上版本,而我们的openssl是1.0.2版本。

只有把urllib3的版本降为v1.26版本。

pip install urllib3==1.26.6

安装后能正常运行bypy。

调试

  • 运行时添加-v参数,会显示进度详情
  • 运行时添加-d,会显示一些调试信息
  • 运行时添加-ddd,显示HTTP通讯信息

使用示例

登录配置

    (test) [user @ cloud  20:17:08 /mnt/data/]
    $ bypy info
    Please visit:
    https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8W
    And authorize this app
    Paste the Authorization Code here within 10 minutes.
    Press [Enter] when you are done
    c5c3085d143f880df0727d3f
    Authorizing, please be patient, it may take upto 300 seconds...
    Quota: 10.010TB
    Used: 1.332TB

登录验证后会显示当前剩余储存空间和已用空间,比如我这里大概10TB左右。

主要参数

    $ bypy -h
    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提供了丰富的命令行参数,具体如下:

    - `-h`,`--help`:显示帮助信息
    - `-V`,`--version`:显示版本信息
    - `-d`,`--debug`:设置调试级别
    - `-v`,`--verbose`:设置详细程度
    - `-r`,`--retry`:网络错误时重试的次数
    - `-q`,`--quit-when-fail`:最大重试次数失败时退出
    - `-t`,`--timeout`:网络超时时间(秒)
    - `-s`,`--slice`:文件上传切片大小
    - `--chunk`:文件下载块大小
    - `-e`,`--verify`:验证上传/下载
    - `-f`,`--force-hash`:强制文件MD5/CRC32计算而不使用缓存值
    - `--no-resume-download`:如果本地文件已经存在,则恢复而不是重新开始下载 
    - `--include-regex`:要包括的文件的正则表达式。
    - `--on-dup`:在目标中存在相同的文件/文件夹时要执行的操作
    - `--no-symlink`:上传/同步时不要跟随符号链接
    - `--disable-ssl-check`:不要验证主机SSL证书
    - `--cacerts`:指定CA Bundle的路径
    - `--mirror`:指定PCS镜像
    - `--select-fastest-mirror`:让程序运行一些测试并选择它检测到的最快的PCS镜像。
    - `--rapid-upload-only`:仅上传可以快速上传的大文件
    - `--resume-download-revert-back`:恢复下载时至少回退RCOUNT下载块并对齐到块边界。负值表示不回退。 
    - `--move`:在下载/上传/syncdown/syncup成功后删除源文件/目录(这将强制验证文件)。
    - `--processes`:并行进程数。 (仅适用于目录同步/下载/上传)。
    - `--downloader`:要使用的下载程序(如果未指定,则使用Python)。
    - `--downloader-arguments`:下载程序的参数
    - `--config-dir`:指定配置路径
    - `-c`,`--clean`:删除令牌文件(需要重新认证)和上传进度文件

上传文件

    bypy upload /path/to/local/file /remote/path

下载文件

bypy download /remote/path /path/to/local/file

同步文件

    bypy syncup /local/path /remote/path
    bypy syncdown /remote/path /local/path

bypy是一个非常强大的Python客户端,可以方便地操作百度云。我觉得这个工具还是挺好用的,比如用百度云盘和其他人直接从linux服务器上传文件,解决文件传输问题。

参考资料:

https://blog.csdn.net/weixin_42232041/article/details/106816582
https://github.com/houtianze/bypy
https://zhuanlan.zhihu.com/p/660728505
https://blog.csdn.net/ZaoJewin/article/details/130997540
1