Linux使用bypy操作百度网盘

        在Linux中不支持百度网盘下载,安装bypy后可以正常命令上传、下载等操作

bypy介绍

Bypy是一个功能强大的Python库和命令行工具,它作为百度云/百度网盘的Python客户端,允许用户在本地电脑和远程服务器之间无缝地传输文件。以下是对Bypy的详细介绍:

一、主要功能

  1. 文件上传:使用bypy upload命令可以将本地文件上传到百度网盘。
  2. 文件下载:使用bypy downfile命令可以从百度网盘下载文件到本地。此外,bypy还提供了downdir命令,用于下载整个文件夹。
  3. 文件列表:使用bypy list命令可以列出百度网盘指定目录下的文件。
  4. 文件同步:bypy支持本地目录与百度网盘之间的双向同步,使用syncup命令将本地目录同步到云端,使用syncdown命令将云端目录同步到本地。
  5. 文件比较:使用bypy compare命令可以比较本地当前目录和云盘根目录的文件差异。
  6. 授权管理:首次使用bypy时需要进行授权,授权过程简单快捷。如果需要取消授权,可以使用bypy -c命令。

基础配置

# 安装
pip install bypy
# 首次安装后需要登录,随便输入命令后提示复制链接到浏览器获取授权码,将授权码复制会命令中输入
bypy list
# 操作后默认目录为/apps/bypy,在网盘中会添加目录:我的应用程序/bypy

获取授权码

执行截图

常用命令

# 上传文件
bypy upload /path/to/local/file /remote/path
# 下载文件,服务端目录是相对/apps/bypy里面的,命令中不用包含这部分
bypy download /remote/path /path/to/local/file
# 下载目录
bypy downdir [remotedir] [localdir]
# 同步文件
bypy syncup /local/path /remote/path
bypy syncdown /remote/path /local/path

命令帮助

- `-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 -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 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: /root/.bypy]
  -c, --clean           remove the token file (need re-auth) and upload progress file, -cc: clean hash cache
Commands:
refreshtoken - refresh the access token
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
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

### 在 Linux使用百度网盘命令行工具 #### 安装 BaiduPCS 或 bypy 工具 对于希望在 Linux 终端中操作百度网盘的用户来说,有两个主要的选择:`BaiduPCS` 和 `bypy`。前者是一个基于 C/C++ 的工具[^1],而后者则是 Python 编写的客户端程序[^2]。 为了安装这些工具之一,先决条件是在系统上已经配置好了 Python 3 和 pip 包管理器。这可以通过系统的包管理器完成,例如在 Debian/Ubuntu 上可以运行: ```bash sudo apt-get update && sudo apt-get install python3-pip ``` 接着可以根据需求选择安装其中一个工具。如果选择了 `bypy`,那么可以直接利用 pip 来安装最新版本: ```bash pip3 install --upgrade bypy ``` #### 认证过程 一旦安装完毕,下一步就是关联本地环境和个人的百度网盘账户。对于 `bypy` 用户而言,这是通过执行 `bypy info` 并按照提示前往网页完成验证流程实现的。完成后会在用户的 “我的应用数据” 文件夹内创建必要的认证文件[^4]。 #### 使用命令行工具进行基本操作 ##### 列出云端文件列表 要查看存储于百度网盘上的文件,只需简单输入以下指令即可获取当前目录的内容概览: ```bash bypy list ``` 此命令会显示所有位于根路径下的项目;当然也可以指定特定子目录作为参数传递给它以浏览更深层次结构的信息。 ##### 下载单个或多个文件 当想要把某个具体资源从云端拉取下来保存至本机硬盘时,则需要用到下载功能。这里提供了两种方式来做这件事——要么一次性带走整个工作区里的东西(`downdir`),或者是针对单独挑选出来的某几个对象(`downfile`): - **下载全部** ```bash bypy downdir -v ``` - **仅限选定项** ```bash bypy down file_name_or_path_here -v ``` 上述 `-v` 参数表示启用详细的日志输出模式,有助于追踪进度并诊断可能遇到的问题。 ##### 同步与管理其他任务 除了以上提到的基础动作外,还有许多额外的功能可供探索,比如同步两个位置之间的差异、建立共享链接等等。完整的选项清单以及各自对应的语法说明都可以经由内置的帮助文档获得: ```bash bypy help ``` 或是查阅官方提供的详尽指南来进一步了解各个特性的细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值