云计算百科
云计算领域专业知识百科平台

【指南】怎样轻松愉悦地在服务器上用百度网盘进行文件传输

和龟速FTP说再见

面对冷冰冰的 Linux 服务器终端,想传几个大文件(比如数据集、模型权重)到百度网盘,还在用本地电脑下载再龟速上传到服务器?

大可不必!

今天我们用两款开源工具,高性能的 BaiduPCS-Go 和 简洁亲民的 bypy,让文件传输变得像德芙一样流畅。


选手一:BaiduPCS-Go

BaiduPCS-Go 是一款用 Go 语言编写的第三方客户端。它的特点是:速度快、功能全、无依赖(一个二进制文件走天下)。

1. 安装

不需要复杂的环境配置,下载即用。

# 下载适合你服务器架构的版本(以 Linux amd64 为例)
wget https://github.com/qjfoidnh/BaiduPCS-Go/releases/download/v4.0.0/BaiduPCS-Go-v4.0.0-linux-amd64.zip

# 解压
unzip BaiduPCS-Go-v4.0.0-linux-amd64.zip

# 进入目录并赋予执行权限
cd BaiduPCS-Go-v4.0.0-linux-amd64
chmod +x BaiduPCS-Go

# (可选)建议添加到环境变量,方便在任何地方调用
sudo mv BaiduPCS-Go /usr/local/bin/


2.登录

登录是使用 BaiduPCS-Go 的第一道门槛,也是最容易出问题的地方。我根据自己踩过的坑准备了两套方案:

方案一:常规登录(简单直接)

如果你在普通的国内云服务器或个人电脑上,网络环境较好,首选此方法。

  • 获取 BDUSS:
    在电脑浏览器登录百度网盘,按下 F12 打开开发者工具,在 Application -> Cookies -> baidu.com 中找到 BDUSS 这一项,复制其对应的 Value。
  • 执行命令:
    在终端输入以下命令:
  • BaiduPCS-Go login -bduss=<你的BDUSS内容>

  • 结果:
    如果返回 百度帐号登录成功,就大功告成了。

  • 方案二:本地复制配置文件(解决网络问题)

    适用场景:服务器在学校/公司内网、海外服务器、或者登录时提示 context deadline exceeded(超时)或 lookup c.tieba.baidu.com(DNS解析失败)。

    这个方案的核心逻辑是:在本地登录成功,直接把“身份证”(配置文件)寄给服务器。

    步骤 1:本地生成配置文件
  • 在你的本地 Mac 或 Windows 下载对应的 BaiduPCS-Go。
  • 在本地终端执行登录:BaiduPCS-Go login -bduss=…。
  • 确保本地登录成功(输入 BaiduPCS-Go who 能看到名字)。
  • 找到本地生成的配置文件 pcs_config.json:
    • Mac/Linux: ~/.config/BaiduPCS-Go/pcs_config.json
    • Windows: C:\\Users\\用户名\\.config\\BaiduPCS-Go\\pcs_config.json
  • 用记事本打开它,完整复制里面的 JSON 代码。
  • 步骤 2:同步到服务器

    在服务器上,我们直接通过命令行“空降”这个文件,避免复杂的上传操作:

    # 1. 创建配置目录
    mkdir -p ~/.config/BaiduPCS-Go

    # 2. 直接写入内容(在 << 'EOF' 后粘贴你复制的 JSON,最后输入 EOF 结束)
    cat << 'EOF' > ~/.config/BaiduPCS-Go/pcs_config.json
    {
    "baidu_active_uid": 2035xxxx,
    "baidu_user_list": [ …你的完整配置数据… ],
    "savedir": "你的下载路径",

    }
    EOF

    步骤 3:服务器验证

    回到服务器终端,直接输入:

    BaiduPCS-Go who

    你会发现服务器已经处于登录状态了!因为它直接读取了你从本地拷贝过来的合法 Session,完全绕过了服务器端可能出问题的网络验证环节。


    其他常用功能指引

    1. 设置下载路径

    建议登录后的第一件事就是改路径,否则文件会默认下载到程序所在的目录,让你的文件夹变得一团糟:

    BaiduPCS-Go config set -savedir /你的下载路径

    2. 多线程加速

    百度网盘的单线程速度有时并不理想。你可以开启多个并发连接来压榨带宽:

    # 设置 10 线程并发下载(建议根据服务器带宽设置,不要超过 50)
    BaiduPCS-Go config set -max_parallel 10

    3. 批量操作

    • 下载整个文件夹:BaiduPCS-Go d <文件夹名>
    • 搜索文件:BaiduPCS-Go search <关键词>
    • 查看当前下载进度:在交互模式下输入 dlist

    建议:
    如果你已经配置好了 BaiduPCS-Go,可以尝试下载一个几百兆的小文件,看是否如约出现了你的数据?


    选手二:bypy

    如果你是一个 Python 开发者,或者你的服务器上已经装好了 Python 环境,bypy 是一个非常轻量级且优雅的选择。它是基于百度网盘 API 实现的 Python 客户端。

    1. 安装:一行命令

    pip install bypy

    2. 登录:极其友好的 Web 授权

    bypy 的登录方式非常适合服务器环境,它利用 Token 进行验证:

  • 在服务器终端输入:
  • bypy info

  • 终端会显示一个超长的 URL 链接。
  • 复制这个链接,在你的本地浏览器打开并登录百度账号。
  • 网页会显示一串 授权码 (Authorization Code)。
  • 回到服务器终端,粘贴这串码并回车。
  • 显示 Quota 信息即表示登录成功。
  • 3. 使用:极简主义

    注意: bypy 受限于百度 API 权限,默认只能访问网盘中的 /apps/bypy 目录。这意味着你需要把想下载的文件在网盘里移动到这个目录下。

    • 查看文件列表(/apps/bypy 下):

    bypy list

    • 下载文件:

    # 下载单个文件
    bypy downfile <文件名>

    # 把整个目录同步下来
    bypy downdir <远程目录名>

    • 上传文件:

    bypy upload <本地文件> <远程文件名>

    💡 小贴士 (Bonus Tips)

    1. 即使断网也不怕:Zellij

    为了防止 SSH 断开导致下载中断,我们需要一个“后台守护者”。Zellij 是目前最直观、功能最强大的终端复用器。

    1.1 安装 Zellij

    在服务器上执行以下命令进行快速安装:

    # 下载预编译包
    wget https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz

    # 解压
    tar -xvf zellij-x86_64-unknown-linux-musl.tar.gz

    # 移动到系统目录
    sudo mv zellij /usr/local/bin/

    # 检查是否成功
    zellij –version

    1.2 使用 Zellij 愉快地下载

    Zellij 的 UI 非常友好,底部会显示所有快捷键提示。

  • 开启会话:输入 zellij 即可进入。
  • 运行任务:在里面运行你的 BaiduPCS-Go d <文件名>。
  • 优雅离开(分离会话):
    • 先按 Ctrl + o(进入 Session 模式)。
    • 再按 d (Detach)。
    • 此时即便你断开 SSH 链接,下载依然在服务器后台狂奔。
  • 重新回来:下次登录服务器,只需输入 zellij attach 即可瞬间回到刚才的下载界面。

  • 2. 并发拉满

    对于 BaiduPCS-Go,如果你觉得速度不够快,可以压榨服务器性能:

    BaiduPCS-Go config set -max_parallel 20 # 设置20个并发线程

    3. 遇到 403 Forbidden 怎么办?

    如果在下载时频繁遇到 403 错误,通常是因为账号被临时风控或 User-Agent 问题。

    • PCS-Go: 尝试修改 User-Agent 为手机或者电脑。
    • 通用: 休息一会,喝杯咖啡,过几个小时再试。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【指南】怎样轻松愉悦地在服务器上用百度网盘进行文件传输
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!