我是一个仓鼠症患者,喜欢收集各种资源,哪怕收集之后自己可能根本不会再看一眼,但还是乐此不疲。这几年里,我从各种地方保存资源,又尝试了各种不同的云存储方案。也算是对资源获取、下载、转存等有了点心得,今天就专门讲讲如何在不同云存储之间转存数据。

注:这里的od指onedrive,gd指googledrive

通用

multcloud

multcloud支持googledrive、onedrive、dropbox、百度网盘、webdav等主流云存储,甚至也支持owncloud这种自建网盘(见上图)。使用方法也很简单:添加相应的网盘,授予权限,选中文件转存到其他网盘。其原理应该用自己的服务器作上传下载中转。以前试过,每个月免费额度只有30G,而且速度也很慢(18年是这样的,不知道现在有没有改善)。会员又很贵,有这钱用自己服务器传不好吗。

不过还是推荐一下,懒得操作又土豪的人可以考虑上。

20200305补充:Mover

官网:https://mover.io/

目前是免费、不限制网盘数量、不限制流量的,而且可以自动跳过同目录重复文件。已被微软收购。

支持将“Mover Agent / Amazon S3 / Amazon WorkDocs / Microsoft Azure / Box / Dropbox / Egnyte / FTP / Google Drive / Office 365 / OneDrive / SFTP / SharePoint Online / WebDAV”中的文件迁移到自己的服务:“Azure Blob Storage / Office 365 (OneDrive/SharePoint Admin) / OneDrive Consumer / OneDrive for Business (Single User)”中。

博主并未进行测试,据说效果还行。

同域下od之间互传

这里的同域指的是同一组织,也就是账号的后缀是一样的,比如我发给大家的账号,后缀都是@nii.ink,那么这些账号之间就可以互相发送资源(所以大家有好资源还不赶快分享给我)。

同域下,可以利用onedrive的分享功能一键转存。首先,点击分享文件夹右侧的竖三点->共享

输入对方的账户(test01@nii.ink),发送即可

登录目标od账户(test01@nii.ink),在已共享中就可以看到这个文件啦。

不过原始资源删除的话,共享文件也会失效,所以我们要把它放到自己od中。

点进去测试文件夹,跳到新的界面,选中之后,会发现上面出现了一排选项

选择复制到->你的onedrive,就可以保存到自己的od里啦。

千万不要点移动到,否则原始文件夹就会消失,当然如果两个账户都是你自己的话就无所谓了

不同域od之间似乎不能这样做,所以需要下一个方法。

不同域od、odgd互传

准备工具:VPS(KVM虚拟,OPVZ就别想了,最好是国外的,国内VPS,带宽低不说,而且对ODGD非常不友好),rclone

这里把以前的笔记贴上来,之前用的rclone版本与现在不一样,具体细节也有所差异,大家自行调整即可。另外,rclone也支持mega、Dropbox等网盘,具体参考官方文档。

如果你对VPS一点了解也没有的话,可以参考我以前写的两篇文章,VPS购买VPS实战

以od为例:

获取access token

  • 下载windows版本rclone
  • 将Windows版的rclone.exe解压至临时目录,如D:\rclone
  • 运行以下命令
D:
cd D:\rcloe\rclone-v1.44-windows-amd64
rclone authorize "onedrive"
  • 弹出浏览器让你登录onedrive,成功后返回一大串字符,格式形如{"access_token":…………,"expiry":"2018-10-24T22:00:34.4727628+08:00"}(复制的时候连同花括号也复制进去)

安装

连接VPS,运行命令

wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
chmod 0755 ./rclone-*/rclone
cp ./rclone-*/rclone /usr/bin/
rm -rf ./rclone-*

或:

curl -O http://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
cp rclone /usr/sbin/
chown root:root /usr/sbin/rclone
chmod 0755 /usr/sbin/rclone

配置

输入命令rclone config,进入配置界面,注释均为选项解释

No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config

# 需要加密码保护配置信息就按 s 进入设置密码,若不需要,按 n 进入连接网盘。

n/s/q> # n
name> # 自定义名称,我这里是yanshu

Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
 1 / A stackable unification remote, which can appear to merge the contents of several remotes
   \ "union"
 2 / Alias for a existing remote
   \ "alias"
 3 / Amazon Drive
   \ "amazon cloud drive"
 4 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
   \ "s3"
 5 / Backblaze B2
   \ "b2"
 6 / Box
   \ "box"
 7 / Cache a remote
   \ "cache"
 8 / Dropbox
   \ "dropbox"
 9 / Encrypt/Decrypt a remote
   \ "crypt"
10 / FTP Connection
   \ "ftp"
11 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
12 / Google Drive
   \ "drive"
13 / Hubic
   \ "hubic"
14 / JottaCloud
   \ "jottacloud"
15 / Local Disk
   \ "local"
16 / Mega
   \ "mega"
17 / Microsoft Azure Blob Storage
   \ "azureblob"
18 / Microsoft OneDrive
   \ "onedrive"
19 / OpenDrive
   \ "opendrive"
20 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
21 / Pcloud
   \ "pcloud"
22 / QingCloud Object Storage
   \ "qingstor"
23 / SSH/SFTP Connection
   \ "sftp"
24 / Webdav
   \ "webdav"
25 / Yandex Disk
   \ "yandex"
26 / http Connection
   \ "http"

Storage> 18 # 这里选择18-onedrive

** See help for onedrive backend at: https://rclone.org/onedrive/ **

Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> # 留空,回车即可

Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> # 同样留空回车即可

Edit advanced config? (y/n)
y) Yes
n) No
y/n> n # 一般不需要高级设置,选择 n 就好

Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> n # 如果是在 VPS 上连接,选 n 吧

For this to work, you will need rclone available on a machine that has a web browser available.
Execute the following on your machine:
        rclone authorize "onedrive"
Then paste the result below:
result> # 把前面得到的那串代码复制进来,注意花括号内

Choose a number from below, or type in an existing value
 1 / OneDrive Personal or Business
   \ "onedrive"
 2 / Root Sharepoint site
   \ "sharepoint"
 3 / Type in driveID
   \ "driveid"
 4 / Type in SiteID
   \ "siteid"
 5 / Search a Sharepoint site
   \ "search"
   
Your choice>1

Found 1 drives, please select the one you want to use:
0: OneDrive (business) id=b!n8zIv2a0FkyOikre4C4be9QtgWS6ju9FgSd3Sy5eZVXWY5IWXZUQTYTBe8OH4e9x
Chose drive to use:> 0

接下来畅通无阻,最后

y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

Current remotes:

Name Type
==== ====
yanshu onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

按照这种方法,你可以添加不同网盘(GD不需要第一步,中间会生成一串链接,复制链接到浏览器,登录GD后会生成一串代码,把代码复制到SSH上即可)

同步

运行命令

apt-get install screen # centos是yum
screen -S rclone #第一次同步大量数据使用 screen 会话尽可能保护 rclone 执行不被中断
rclone copy drive01name:Folder drive02name:Folder

drive01name就是原数据所在盘,Folder就是原数据所在文件夹。drive02name:Folder就是转存目标盘和目标盘中的文件夹。

第一次同步完成,就可以 VPS 上(每天/周/月,按需选择)定时执行脚本自动同步。可以选择使用 rclone_copy --ignore-existing 进行增量备份(没有实测,按官方说明是可以实现),或者使用 rclone sync 同步。

需要注意的是,OD和GD都有流量限制,OD大概是1T/天,GD大概是750G上传+10T下载/天

gd之间互传

类似同域OD互传,借助GD分享功能即可。

首先,获取共享链接

然后在新浏览器(或无痕模式)登录另一个GD账号,复制共享链接到新浏览器中,保存到新GD中。

但是这种保存本质上来说只是存了一个快捷方式,你只有浏览的权限,而没有重命名、移动、删除单个文件的权限,如果原文件取消分享,那快捷方式自然也就失效了,所以我们也需要把它真正存到GD中。

GD有个特殊机制,就是对单个共享文件进行复制,就会生成一个你具有完全权限的副本,但是只对文件有效,文件夹无效,而且不能批量操作。不过GD提供了相应的API,也有专门的第三方程序帮我们完成这一工作。

右键某个共享文件夹->打开方式->关联更多应用

搜索copy,关联Copy,URL to Google Drive,也就是上图已经存在的应用。

回到GD,重新右键共享文件夹,用Copy,URL to Google Drive打开,跳到转存界面,Save即可。

转存完成后,GD中就会有一个Copy of……文件夹,也就是共享文件夹的副本啦,这样你就可以对该文件夹随意修改操作,也不怕原文件失效了。

用这种方式转存,同样遵循每日750G的上传限制,也就是说你每天最多转存750G的数据

百度、115、OD、GD互传

国内的网盘大多没有开放api权限,只能通过官方客户端进行下载上传,所以你需要有个windows系统的VPS,然后下载百度网盘、115浏览器等等,手动下载上传,这没什么好说的。说几个值得借鉴的经验吧。

1、最好有百度、115等网盘的会员,速度才有保障。

2、百度网盘即使开了SVIP,用官方客户端也无法满速,这时候可以借助第三方客户端,比如pandown什么的(好像现在凉了,大家可自行寻找替代品,暑假的时候用pandown开64线程,下载速度能有近百M,是真的舒服)。另外有人反应下载达到一定量百度也会限速,不过我是没遇到这种情况(之前十几天内断断续续下了5、6T,也没有碰上限速)。

3、百度网盘在国外速度还是可以的,测试美西下载速度能跑满带宽,所以大家最好选择美西服务器,远程连接也不卡顿,下载体验也好。115出了国门就废,要下载的话还是选择国内服务器。服务器的选择方面,当然是硬盘最重要,毕竟你要留够空间暂存数据,如果有压缩包可能还要解压。

4、windows服务器一般要比Linux服务器贵,大家可以自行dd windows系统,分享一个萌咖大佬的代码,一键dd win7系统

wget --no-check-certificate -qO InstallNET.sh 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh' && bash InstallNET.sh -dd 'https://moeclub.org/onedrive/IMAGE/Windows/win7emb_x86.tar.gz'

需等待一段时间。初始帐户:Administrator;密码:Vicer

进入系统后无论多大硬盘都只会显示5G,若要显示完整容量,需计算机右键>管理>磁盘管理>C盘右键>扩展卷,一路回车即可

修改远程登录密码:控制面板>用户账户>更改windows密码

DD不一定都能成功,至少我测试的有些VPS就会失败,可能是我姿势不对吧……

5、说到国外服务器了,我也不敢轻易推荐什么VPS,就说几个我用过的吧(穷,所以用的都是低价和特惠款):

  • Vultr,支持按小时付费,正是这个特点让它很多ip都不行了……如果你耐心开的话还是有可能开出能用的ip的。新用户充值送50刀,你就可以直接开一个顶配win系统的VPS,50刀足够你用十几天了,而且硬盘也大(320G还是640G来着),适合攒够资源一次性搬迁。
  • virmach,虽然大家吐槽它,但这居然是我唯一能DD成功的VPS,所以也就一直放着了。
  • onevps,趁优惠开了个德国VPS,百度网盘居然也能有30多m的下载速度。

以上经验仅供参考,大家有钱的话可以无视。

20191219更新:virmach涉嫌歧视国人,强烈建议不要购买他们家的机器。见帖子:https://www.hostloc.com/forum.php?mod=viewthread&tid=629073&highlight=vir

6、如果是百度网盘和115互转的话,国内服务器其实是最好的方案。去阿里云或腾讯云开个学生机,一个月也就10元左右,而且可以随便换win系统和linux系统,硬盘也还行(40G-50G,不够的话再加嘛)。有人可能说1M带宽要传到天荒地老啊,其实不是的。1M带宽是服务器上行带宽,下行带宽一般是比较大的(实际测试下来阿里腾讯的下行带宽大概是100M左右),所以下载百度网盘和115资源,都能达到10M左右的速度,挂着等就好了,也不用占用自己的电脑。那上传呢?对我来说其实不是事,因为我没有私人数据,大多数数据都是百度或115上已经存在的数据,所以根本不需要上传带宽,直接就秒传了。目前我用的就是这种方案,感觉还不错。当然,如果你有很多私人数据,那可能就要另寻它法了。

以上就是我总结的几种不同网盘数据转存方案,大家有更好的方法可以告知于我。

Last modification:March 5th, 2020 at 01:43 pm