抛弃百度云!挂机自动转存OneDrive,细水长流迁移网盘数据

2020-4-23|2023-7-13
麦克伊文斯
麦克伊文斯
type
status
date
slug
summary
tags
category
icon
password
😡
我本来不是百度云的重度用户,但不可否认在过往几年,有不少的私人数据存放在上面。然而我之前一直采取“绥靖”的政策,也没有特意做什么处理。一个是百度云的下载速度太慢了,数据虽然私隐,但不是特别急需,于是先放下不管;第二个是无可厚非的事实,百度云是资源分发的大站点,需要用的时候还是无可避免要接触到。不过还好,有好用的第三方工具能够提升我的使用体验,在此对多年来无私奉献的第三方工具开发者说一声感谢!
但最近发生了很多事情,包括这个那个,让我下定决心不再在百度云上存放数据了。因此,我打算将过往几年放置在百度云的私人数据全部取出来,并转存到OneDrive上,最后销毁在百度云盘上的私人数据。
 

🤔 我的需求

目前基本上已经没有存活的第三方百度云工具了,因此下载端只能用臃肿的官方客户端。而上传方面,对于我来说则起码要满足以下几点:
  • 迁移的数据量比较大,为了节省空间转存完毕后能删除下载的文件
  • 能够长期稳定挂机转存的工具
  • 一整个文件夹的能保持子目录结构
  • 不用人工干预,在百度云客户端点击下载所有文件后可以撒手不管
  • 下载或上传成功后给我推送通知
目前网上好像还没有好用的转存工具,于是我花了一天的时间写了一个Windows下的脚本,利用一个我白嫖的暂时闲置的挂机宝。实现 Windows百度云官方客户端 + Rclone + 目录监控工具 + VBS脚本 细水长流迁移数据到OneDrive上。

🤗 具体步骤

安装百度云

略,自行安装即可。

安装 Rclone

Rclone 是一个支持在不同网盘、对象储存空间上传、下载及同步数据的命令行工具
Rclone下载地址:https://rclone.org/downloads/
下载Windows版本,完成后解压到任意目录即安装完成,比如我直接放在了挂机宝的 D:\rclone\

创建 OneDrive API(可选)

在进行连接之前,我建议先申请自定义的 API,避免使用 Rclone 的公共 API,否则容易出现上传失败/上传速度慢的问题
  1. 进入 MicroSoft Azure 应用注册页面,点击 新注册 按钮
    1. notion image
  1. 输入名称,账户类型如图选择,其中重定向URL要修改为 http://localhost:53682
    1. notion image
  1. 创建完毕后会出现 Client ID,请妥善保存它
    1. notion image
  1. 点击侧边栏 管理-证书和密码,点击生成新客户端密码,截止期限按需选择(建议永久)
    1. notion image
  1. 添加完毕后会出现Client Secret,请像对待密码一样记录下来,放在安全的地方
    1. notion image
  1. 最后,到 API权限 页中设置权限,如图所示添加Files.ReadFiles.ReadWriteFiles.Read.AllFiles.ReadWrite.Alloffline_accessUser.Read 权限
    1. notion image
  1. 添加权限完毕后,最后看上去应该是这个样子的
    1. notion image

配置 Rclone 连接 OneDrive

在安装目录下执行 rclone config 开始配置
由于我是在挂机宝上配置的,挂机宝没有公网IP且没有公开端口可以访问, 因此我是使用 Anydesk 的端口映射功能来映射挂机宝的 53682 端口到本地,来进行接下来的绑定账号功能。
(强烈推荐 Anydesk,我愿称之为最方便好用的的远程桌面工具)
当你复制上述链接并成功登录后,离成功就已经不远了
若无意外的话,此时 Rclone 就已经连接到你的 OneDrive 上了,再次执行 rclone config 可以看到挂载好的网盘

获取自动化脚本

Talk is cheap, just show you the code.
以下脚本在 Windows 10 (1809) X64 测试通过
修改可配置项后,将VBS脚本保存到本地
脚本完整文件可 通过 Github Gist 获得

配置 Folder Monitor 文件夹监控

Folder Monitor 是一个麻雀虽小五脏俱全的文件夹变动监控工具,内存占用小,在本次需求不大的环境下基本够用了
Folder Monitor 下载地址:https://www.nodesoft.com/foldermonitor
下载并解压后启动软件,右键点击系统托盘图标,点击 Open 进入配置界面
右键点击空白处,选择 Add folder,选择百度云客户端的默认下载目录
notion image
右键点击刚新增的目录选项,确保 Recursive 选项是勾选的,点击 Option 进行详细配置
notion image
首先在 Events 选项卡,只保留 Renamed 的勾,其他取消掉。因为百度云客户端在下载文件时会先创建后缀为 baiduyun.downloading 的临时文件,在下载结束后会重命名成正常的文件名。因此,我们要监控的是重命名这个行为,以便上传下载完成后的文件。
notion image
在 Execute command 选项卡,配置路径和参数
notion image
最后,到 Filter 选项卡,添加排除过滤器 downloading.cfg,避免百度云下载任务产生的配置文件被错误上传
notion image
保存后,自动转存的一连串工具就全部配置完毕了!
现在,你可以到百度云客户端添加你想要转存的文件到下载列表,下载完毕后就会自动使用 Rclone 上传到 OneDrive 中了。

效果展示

目前这套程序已经在我的挂机宝上稳定运行了超过一天半了,转存了 9.15G 的文件
notion image
按百度云下载最高 120KB/s 的速度,一天24小时最多能搬迁不到 10G 的文件
对于我这种不会为百度充一分钱的用户,也就这样吧,不能再要求更高了。
200G 的文件,可以细水长流在20天内迁移完毕,不急用的话,我是可以接受的。
notion image
Telegram 推送通知的效果如图所示,还算比较整洁,当然也有不少改进的地方~~~我肝不动了先放着吧~~

拓展用法

这个思路其实就是监控本地文件的变化,并且执行命令上传,当你拥有了这个思路之后,就可以举一反三了
例如:可以挂载不同的网盘,监控不同的下载文件夹,打造成私人的离线下载工具……
更多的玩法,等待你的发掘

附录:百度云的替代方案

储存空间

目前我的主力方案是 Microsoft 365 家庭版 订阅
Microsoft 365 (原 Office 365)的家庭版对于普通用户来说够用了,组一个五人车的话每个成员都可以获得
  • 正版的 Office 应用,可以同时在Windows,Mac和移动设备使用
  • 每人 1T 的储存空间(不限速)
  • 每月 Skype 60 分钟通话时间(虽然看上去不是很实用,拿来打个电话还是OK的)
与他人合租的话价格在一年 40-60 RMB 之间,是比较不错的价格
其次是 Google Drive 团队盘 ,网上有很多取得团队盘的门路,然而我不建议将重要资料存放到团队盘中,因为盘中的资料会被管理员查看到,而且随时会有翻车的风险。所以我的团队盘基本都是用来作为 公开资源的转存站 的
(关于怎么方便快捷地将他人的资源快速转存到Google Drive,以后我会专门做一期教程给大家讲解)

资源获得

在资源存量上,其余的网盘产品在短时间内在数量上还难以替代百度网盘,然而这并不意味着你没有更优质的资源获取渠道
我目前正在使用的有 「Google Drive 资源:人人发资源」,用来转存公开资源到 Google Drive,其次就是使用这个脚本挂机下载资源进行转存了。

对外分享

假若你拥有一个 OneDrive 盘,要做到对外分享是十分简单的
如果你没有自己的服务器,可以使用 Cloudflare Worker ,配合 OneDrive-Index-Cloudflare-Worker 或者 FODI 等工具,快速搭建一个外链分享网站
如果你有自己的 VPS,我目前使用的是 OLAINDEX ,准备迁移到 Cloudreve ,也可以使用其他的项目例如大名鼎鼎的 OneIndex / PyOne / ShareList 等项目
如果你不想大费周章,只想分享几个文件的话,也可以使用 OneDrive 直链助手 直接在网页中分享

📎 参考文章

Giffgaff eSIM 协助转换须知Giffgaff 现正升级支持 WiFi Calling 中