Onedrive 迁移方案记录

本文所提到的 onedrive 包含 onedrive 和 sharepoint 两种,它们本质上都是 sharepoint ,同时文中提到的 od 都是指它们。

  • 迁移 OneDrive 时应当考虑 api 限制问题。

  • 目前未知 clouddrive 是否会重试失败任务。

  • 本文只考虑向较为稳定的网盘迁移,国内网盘如百度、阿里、123盘不考虑。

  • 本次记录从 od E5 到 od E5/家庭版 、 pikpak 、 115 的迁移方案。

秒传情况

秒传 就是两个云盘之间的文件可以快速相互上传,不用等待。

左侧为来源网盘、 顶部为目标网盘

onedrive/sharepoint pikpak 115
onedrive/sharepoint ×

onedrive/sharepoint >> onedrive/sharepoint

rclone 是最优解,其他的一概不推荐。

一般来说直接用 rclone 复制即可。

rclone copy "backup01:/汉化会社合集部分 part8/" "s1:/汉化会社合集部分 part8/"  -P
rclone copy "backup01:/汉化会社合集部分 part8/" "s1:/汉化会社合集部分 part8/"  -P --onedrive-chunk-size 100M

加上 -P 可以持续输出日志。如果有报错,可以再运行下面这行,输出错误日志,看看哪些文件出错了。一般是文件报毒,没加密压缩上传导致的。这种情况在网页版 od 仔细翻翻就可以取回了。

rclone copy "backup01:/汉化会社合集部分 part5/" "s0:/汉化会社合集部分 part5/"  --log-level ERROR --log-file hh5.log

如果想同步(删掉目标文件夹的一些文件实现同步),可以用 sync 命令。

rclone sync -v R2:/img sayafx02:/img-backup  -P

另外再记录一种情况,想要批量复制文件夹到另一个盘中。

例如最近我要把 E5 od 的 2T 文件夹分开迁移到家庭版 2 个 1t 的 od 中。如下所示。

E5/Folder1 300g
E5/Folder2 300g
E5/Folder3 300g
E5/Folder4 300g
E5/Folder5 300g
E5/Folder6 300g
Personal-1/Folder1 300g
Personal-1/Folder2 300g
Personal-1/Folder3 300g

Personal-2/Folder4 300g
Personal-2/Folder5 300g
Personal-2/Folder6 300g

由于我没找到 rclone 有类似的命令,等上一条复制完再添加下一个,有些麻烦而且说实话有点蠢。貌似有把需要复制的文件放在一个文本文件里再读取复制的方法,但由于家庭版的 od 号实在是太多了,这么做也很麻烦。

于是我用了 1panel 的计划任务,如果不设置 --onedrive-chunk-size 大约是 4h 搬运完一个文件夹(100g上下)。设置好命令和时间,剩下的只有等待了。

由于个人版 od 不能申请自己的 api 了,所以会慢一些。另外如果调高 --onedrive-chunk-size 的值,内存消耗会急剧增加,省事省力还是使用默认的吧,正好内存占用小,还可以多运行几条命令多线程搬运。

最后把运行成功的计划任务 停用 或者删除就OK了。

image-20241008141544577

onedrive >> pikpak

1T 以内

把 onedrive 和 pikpak 都挂载到 Alist ,然后用 Alist 复制。(现在的会员每个账号每月只有1t的上传流量,用工具复制算在上传流量里面)

用 Alist 从 od 到 pikpak 是可以秒传的。

超过 1T

  • 方案一

可以分批用 rclone 向多个会员账号迁移,最后汇总到一个号上。

  • 方案二

把 onedrive 挂载到 onemanager 或 Alist ,然后用直链在 pikpak 云下载。

推荐用 cmd 或其他神秘方法生成 onedrive 的目录列表,然后加上域名和路径,拼接出直链批量云下载。

云下载时要注意 onedrive 的 api 限制,具体没测试,大概 1h 50个文件,不然等到碰到 onedrive 限制了,pikpak 传输列表会一堆报错。

PS: 目前 pikpak 挂载到 Alist 需要获取 刷新令牌、验证码和设备id,并且时不时会掉登录,挂载方式不是很稳定,可能下次官方再整次活,挂载方式又变了。

onedrive >> 115

探索

115 的登录 Cookie 可以用 Alist 官方文档提供的方法,我用的是 使用Python脚本获取 Cookie

登录时使用 微信/支付宝 小程序的 Cookie,日常很少会用到且较为稳定。如果用 Android 或者 IOS 的 Cookie 挂载,当你用手机登录时,Alist 那边对应的登录会掉。

  1. 网上搜到的那个支持 115 的改版 rclone 不能用 copy 命令。

  2. 直接用 Alist 迁移会在本地留下和文件同大小的缓存文件,迁移大文件不合适,会直接把 vps 的硬盘撑爆。不过支持秒传这点很好,迁移起来很快。

  3. 用 Alist 挂载 onedrive 和 115 ,然后把 Alist 用 WebDAV 挂载到 rclone ,用 rclone 的 copy 命令貌似无法写入 115 。

实际使用方案

clouddrive2 可以使用,还算稳定,没有缓存文件,内存占用小

本来想把 Alist 用 WebDAV 添加进去,就不用去一个个添加 onedrive 了。没想到只能读到文件列表,迁移时发现疑似无法从 WebDAV 下载。

clouddrive 需要购买会员,由于我只是偶尔用一下,开了 5¥ 的月度会员,价格不算贵。


就在我已经迁移了 5t 的时候,用 115 的 cookie 登录挂载上传的方法又挂逼了,疑似偶尔才可以用。无法秒传的文件的迁移计划基本寄掉了。并且听说 115 高峰期时限速很严重,所以暂时不打算向 115 备份了,目前迁移了 5t 之后就再没动过了。

本文用到的工具

归档
arrow_up
theme