本篇文章将以小白视角,手把手教你如何使用 rclone 搬运网盘内容。网盘几乎涵盖了全球最常见的网盘提供商,或支持 WebDAV 的云盘服务(除百度云盘)。本文将演示如何使用阿里云盘 WebDAV 服务以及在 Ubuntu 上绑定 Dropbox 等网盘,如何将文件相互搬运以达到自己理想的存放目的。
感谢 rclone 非盈利组织,webdav-aliyundriver 创作者,以及 DigitalOcean。使用 DigitalOcean 推荐链接注册(点击链接或下面的图标即可跳转)可获取100美元两个月的使用权。助你免费搬运最高达 8TB 的数据。
免责声明
- 本文仅为技术指导。AZSECF 无法保证您的数据的安全,无法知晓您的数据将被哪些第三方收集或查看,以及无法对您的个人信息进行保护。详见 安猪二楼是如何保护您的个人资料的。
- 当你通过上述的推荐链接注册 DigitalOcean 后,在您获得100美元奖励的同时,安猪也会获得25美元的推荐奖励。除此之外本文没有任何赞助,也不包含任何商业推广。
- 阿里云盘 WebDAV 为免费开源项目,无任何形式的盈利行为。服务于阿里云盘,旨在让阿里云盘功能更强大。如有侵权,请与我联系,会及时删改本文。WebDAV调用官方接口实现,无任何破解或破坏官方接口行为。
- 通常情况下,使用本文操作实现搬运目的的仅做流量转发,不拦截、存储、篡改任何用户数据。
- 严禁使用本方法进行盈利、损坏官方、散落任何违法信息等行为。
内容更新
由于内容可能会随时间推进出现不同于本文的情况,例如截图、代码、视频、插件不可用等情况。请酌情自行修改与理解。亦可进行留言讨论。插件内容(如本文使用的阿里云盘WebDAV)将由原作者修改或更新,请 前往对应页面查看 最新更新情况与代码或服务更新。
呼吁
众多网盘不提供 API 接口的很大原因是防止被滥用。比如中国大陆的百度网盘,115网盘等都是很好的网络存储服务提供商,但由于监管压力与接口滥用等原因,这些公司不得不停止接口的开放。如今,阿里云盘作为个人云存储的新选手,初期开放接口肯定是希望能够有更多优质资源流入,并希望吸纳用户将文件存储在阿里云盘中。商业行为完全可以理解,但为了个人数据的完整,建议使用者不要把所有资料放在一家公司中。这也是为何写这篇教程的原因。将文件多备份几个地方,肯定是没有坏处的。当然希望阿里云盘能够坚持下去,但也在此呼吁用户,请不要把服务提供商提供给用户的便利用在不正当的方面。良好的网络存储环境需要大家一起来守护。最后也希望阿里云盘能坚持下去!
正文
目录
在 rclone 中添加 Dropbox、OneDrive 或其他需要授权登陆的服务
注册账号与创建服务器
本文建议使用 DigitalOcean 搭建一个临时服务器。因为新用户可以获取最高每个月4TB的流量传输,共两个月。若你自己拥有服务器,亦可使用自己的服务器。但请留意流量的使用。
使用上文的推荐链接注册后,将会要求绑定银行卡并付费最少 5 美元。这个金额是会存在账户里的,所以不用担心。如下图所示,在注册时显示“Free credit active”,表示您将获取到这个优惠。输入个人信息后点击“Deploy in seconds”即可开始注册。注册时需要填写一些个人信息,根据提示完成流程即可完成账户的创建。
注册完成后,将跳转至实例创建页面。点击右上角创建或屏幕中间的创建,选择创建 Droplet。
配置实例。
服务器系统选择 Ubuntu 20.04 (LTS) x64
套餐可以根据流量传输需要选择。不同的月付金额除了系统配置不同以外,每月传输限制也有不同。两个月的免费100美元足够选择最高配置,即每个月4TB数据。两个月共可传输8TB数据。
系统盘大小可以根据需要选择。如果仅做 rclone 使用,最小的套餐就可以足够使用。
选择地区。根据自己喜好选择地区。建议美国或加拿大地区。实测可以链接阿里云盘。
创建密码。根据要求输入密码。这个密码将在后续链接服务器时使用,请妥善保存。
实例名称可以根据自己需要修改,我这里没有修改。其他配置保持默认选择创建即可。
创建并等待实例配置完成后你将会看到以下界面。点击实例名称即可打开详细界面。
记住自己的 IPv4 地址。如图,本实例的地址为 143.110.218.158
连接服务器
使用你喜欢的 SSH 连接软件连接该服务器。推荐使用 Xshell。个人使用可以注册免费许可证。填写信息后通过邮箱获取下载链接。
安装并打开软件。选择创建新会话。
给这个会话起一个自己能够辨识的名字,并在 Host 中输入上文提到的,自己实例的地址。其他配置保持默认点击下面的 Connect
获取到秘钥后点击 Accept and Save
输入服务器用户名(root)及密码(配置服务器时设置的密码)。如果害怕忘记,可以点击保存密码。
连接成功的界面应该是长这样的。
root@你的实例名:~#
输入以下代码并回车执行命令。安装 docker。过程中需要输入 Y 并回车确定继续。
apt install docker.io
等待进度条走完后应该依旧显示 root@你的实例名:~# 表示可以继续操作。
配置阿里云盘 WebDAV
登陆网页版阿里云盘。在网页右击选择审查元素或按F12打开开发者工具。根据开发者描述:
点击Application,点击Local Storage,点击 Local Storage下的 https://www.aliyundrive.com/,点击右边的token,此时可以看到里面的数据,其中就有refresh_token,把其值复制出来即可。(格式为小写字母和数字,不要复制双引号。例子:ca6bf2175d73as2188efg81f87e55f11)
将这个 refresh_token 复制到记事本中保存。
复制以下代码到记事本:
docker run -d --name=webdav-aliyundriver --restart=always -p 8080:8080 -v /etc/localtime:/etc/localtime -v /etc/aliyun-driver/:/etc/aliyun-driver/ -e TZ="Asia/Shanghai" -e ALIYUNDRIVE_REFRESH_TOKEN="your refreshToken" -e ALIYUNDRIVE_AUTH_PASSWORD="admin" -e JAVA_OPTS="-Xmx1g" zx5253/webdav-aliyundriver
# /etc/aliyun-driver/ 挂载卷自动维护了最新的refreshToken,建议挂载
# ALIYUNDRIVE_AUTH_PASSWORD 是admin账户的密码,建议修改
# JAVA_OPTS 可修改最大内存占用,比如 -e JAVA_OPTS="-Xmx512m" 表示最大内存限制为512m
找到第一行中 ALIYUNDRIVE_REFRESH_TOKEN=”your refreshToken” ,将上文保存的值覆盖掉(替换)双引号中的内容。假设 token 为 ca6bf2175d73as2188efg81f87e55f11,那么你的代码应该是:
docker run -d --name=webdav-aliyundriver --restart=always -p 8080:8080 -v /etc/localtime:/etc/localtime -v /etc/aliyun-driver/:/etc/aliyun-driver/ -e TZ="Asia/Shanghai" -e ALIYUNDRIVE_REFRESH_TOKEN="ca6bf2175d73as2188efg81f87e55f11" -e ALIYUNDRIVE_AUTH_PASSWORD="admin" -e JAVA_OPTS="-Xmx1g" zx5253/webdav-aliyundriver
若你想进行高级配置可根据注释更改。默认账户和密码均为 admin
将修改为自己 token 的代码复制到服务器中。回车执行。等待进度条全部完成。
待其显示 root@你的实例名:~# 即表示完成。
*官方页面也提供JAVA安装,若有需要可以自行前往查看。
安装 rclone
输入以下代码到服务器并回车运行即可安装。
curl https://rclone.org/install.sh | sudo bash
等待安装完成显示以下代码时即可继续。
输入以下代码检查安装是否完成
rclone config
若出现以下内容,即可继续。
截至撰稿日,rclone一共支持包括 Dropbox,Onedrive, Google Drive等,第三方存储服务(AWS S3,DigitalOcean Spaces,阿里云 OSS等)在内的43款服务。点击对应链接可以查看详细的对应服务的配置内容。本文将不会囊括所有服务的配置教程。
- 1Fichier
- Alias
- Amazon Drive
- Amazon S3
- Backblaze B2
- Box
- Chunker – transparently splits large files for other remotes
- Citrix ShareFile
- Compress
- Crypt – to encrypt other remotes
- DigitalOcean Spaces
- Dropbox
- Enterprise File Fabric
- FTP
在 rclone 中添加阿里云盘(WebDAV)
输入 n 回车,即创建一个新的服务。
提示输入一个名字。可以输入一个自己能够分辨不同终端的名字。如阿里云盘可以输入 aliyundrive。
在接下来屏幕,会出现一堆红绿相间的名字。查找你想使用的服务,输入前面对应的序号或其代号。
如现在正在添加阿里云盘WebDAV,所以我可以输入 38 (不建议输入数字,因为 rclone 在随时更新),或输入 webdav。回车继续
接下来,需要输入 webDAV 的地址。由于阿里云盘的插件服务是搭在服务器端本地的,所以这里输入:
http://127.0.0.1:8080
若在前文中修改过端口或地址,这里将不同。
回车后输入 other 并回车。配置对应服务端的用户名和密码,使用上文中的用户名密码,即均为 admin
密码一共输入两次。后续所有操作可直接回车(即使用默认值)即可。
最后检查配置内容,无误确认(回车)
这时你已经成功添加阿里云盘了。你可以输入 q 退出配置界面。
输入以下代码查看能否读取到你的阿里云盘根目录文件。
rclone lsd 你之前起的名字:
如
rclone lsd aliyundrive:
如果你能看见列出的内容,即表示完成。若失败,请仔细查看是否遗漏相关步骤或名称是否正确。
你可以添加另一个阿里云盘账号(使用同样的步骤获取到另一个 token 即可)。
在 rclone 中添加 Dropbox、OneDrive 或其他需要授权登陆的服务
首先根据你的电脑下载 rclone 桌面端。https://rclone.org/downloads/
选择 Windows 或 macOS 或带有图形界面的 Linux,下载文件。
解压后或得到一个文件夹,我以 Windows Intel/AMD – 64 Bit 为例。
解压后文件名为“rclone-v1.56.0-windows-amd64” (如果 rclone 更新了版本此处则会不同)
双击打开文件夹,确认文件夹位置。
打开命令行(按下 Windows 徽标键,输入 cmd 打开)
使用 cd 命令将文件夹指向该文件夹。
输入 rclone.exe 运行软件
若能成功运行。则可暂时最小化,进行后续操作。
返回到服务器界面,与前文类似操作。输入 n 创建一个新的服务。
输入一个名字,并选择服务提供商。这里我以添加 Dropbox 为例。
输入 dropbox 或输入 Dropbox 前数字序号回车进行配置。若你选择 OneDrive 或其他,在这里选择对应的服务。后续操作类似。
按回车使用默认配置,直到以下界面 “Use auto config?”
由于我们正在使用非图形界面系统,所以输入 n 回车进行手动配置。
出现以下界面
选中有 rclone authorize “dropbox” 的地方,右键进行复制(或其他服务名称)
返回到电脑的命令行(cmd)右键粘贴代码并回车运行。
电脑将会自动打开浏览器界面提示登陆授权。
确认账号正确,点击允许
出现成功界面后返回命令行(cmd)
选中这个部分,Ctrl C 复制。并返回到服务器界面。粘贴并回车
确认正确后回车即可完成添加。
按 q 回车退出配置后,可以使用以下代码查看是否成功。
rclone lsd dropbox:
如果成功列出你的根目录文件即可。
使用 rclone 转移文件
总的来说,转移文件使用以下格式的代码即可
rclone copy 源服务名:源地址 目标服务名:目标地址 -P
如
rclone copy aliyundrive:temp/azsecf-new.png dropbox:folder1 -P
或
rclone copy aliyundrive:photos dropbox:导入/照片 -P
例子中,将会把阿里云盘中在 temp 文件夹里的 azsecf-new.png 这个文件转移到 dropbox 里的 folder1 文件夹中。
或转移整个整个文件夹,如把阿里云盘中 photos 转移到 dropbox 中 “导入”文件夹里的“照片”文件夹中。
若目标位置没有文件夹,则自动创建。
相同文件名、文件大小、文件创建时间的文件将不会被重复传输。
末尾的 -P 则是显示实时传输进度。
- 注意:
断开服务器连接将终止传输操作。若想在后台传输,请查看下文。
若文件夹或文件名中有空格,建议换成 _ 后操作。
尽量不要传输有特殊符号的文件名,尤其是包含 / & # ( ) 这种特殊符号的文件名或路径名。
后台传输
使用以下代码保证程序在断开连接后继续运行
nohup 你的代码 &
如
nohup rclone copy aliyundrive:temp/azsecf-new.png dropbox:folder1 -P &
此时屏幕上不会显示进程,但是所有进程会被保存在 nohup.out 文件中
若想确认程序是否在后台运行,可输入
ps -ef | grep "rclone"
若出现以下进程,则表示程序正在运行
可以使用
cat nohup.out
查看原本会被展示在屏幕上的内容。若内容过多,可以使用
tail -10 nohup.out # 看文件的最后10行
head -10 nohup.out # 看文件的开头10行
less nohup.out # 打开一个文件查看器,按方向键上下移动。q 退出。shift+g 翻到最下,g 翻到开头。
如果文件很大,需要很久的传输时间,则这个 nohup.out 文件也会很大,可以使用下面的代码查看当前 nohup 的大小。通过与当前传输进度相比,看看是否会占满整个硬盘。
ls -lh nohup.out
终止一个后台的进程
kill 进程id
如
kill 110433 # 终止110433(本例子中的进程id)整个后台进程
进阶使用 rclone
rclone 有很多使用方法。可以前往对应页面 https://rclone.org/commands/ 查看。例如使用 size 指令检查文件大小,以确保文件完整性等。本文面向小白,故无赘述。
封面图片来源:https://cloud.netapp.com/blog/b2b-cloud-data-transfer
发表回复