1. 介绍
所需成本:一点小钱、时间、精力、英语单词 / 或一台系统最低版本为安卓7的手机
WebDAV可以直接通过储存空间备份数据、传输文件,注意浏览器本身并不支持WebDAV协议,除非相关项目专门适配WebDAV的前端,否则浏览器无法打开WebDAV链接。众多网盘为何大多不支持WebDAV功能?其实主要的还是会造成客户端、网页端等官方工具的使用率大幅下降,这显然不适合它们的商业运作方式。就连支持WebDAV的坚果云也主要靠卖传输流量为主,好在阿里云盘相对开放一些,开放api支持对接一些第三方工具。我接下来介绍的的第三方WebDAV项目,用来对接阿里云盘实现WebDAV功能,我会尽可能一步一步的详细描述从而降低门槛。
所以主要考虑购买适合的VPS(云服务器),应当仔细考虑VPS的配置,对使用体验影响非常大,我的购买原则就是价格和性能互相平衡使劲往下压,顶级拉扯。这些项目用来搬运大批量资源都是消耗机器本身的流量,所以就需要大宽带大流量,最好无限流量,若非富豪就不必考虑国内那几家了。国内宽带流量月租十分昂贵,而国外VPS宽带月租则是白菜价,但是响应速度又是个问题。阿里云盘数据储存于国内,国外地理位置越远则访问和下载速度越慢,这就跟访问外网一样。如果你对购买国外VPS深有经验,那么就请直接跳到第三章搭建教程。
2. 购买指南
justhost有位于俄罗斯新西伯利亚的节点,是这家服务商距离中国最近的节点,最低配置价格109卢布:
1 核 / 512 MB RAM / 5 GB 磁盘 / 200 MB 共享宽带
搬运阿里云盘文件到OneDrive最高能跑到10M/s。支持支付宝付款,付款时默认先转美元再换人民币最终付款11.2 RMB。下单后5天内支持撤单,费用返还于账户余额并可用于下次购买(所以get到薅羊毛的点没有?)不过需要注意的是,我主要用这家的VPS从阿里云盘搬资源到OneDrive,整体搬运速度尚可,不会一直保持高速,其他网盘及搬运方向并未测试,可能不会理想。
2.1 购买justhost
进入justhost官网,使用全局代理可调用网站自带谷歌翻译,以下步骤按照简体中文翻译得到的结果进行描述。选择“虚拟专用网
”→“硬盘VPS启动
”,页面下方就可以对各项参数进行详细选择。
一般都是大批量传输文件,不然也不会如此大费周折的用VPS搬运文件,我试过用最低配置一次搬运五百多G的文件,512 MB RAM迅速被占满直接崩溃了,问题不大,只需要将RAM稍稍拉到1024 MB就够用了,所以将下面的RAM
拉到1024 MB,其他软硬件配置不用管。继续往下拉,短期使用就将付款期限
”选为1个月
,“软件选择
”勾选“Ubuntu 服务器18.04 64位
”,毕竟就5G磁盘,这个系统镜像占用较小且顺手,“住宿
”选择“TTK(新西伯利亚)
”,通过查看俄罗斯地图可以发现此处地理距离中国最近。其他都不用管。
选择完后返回网页顶部付款,139卢布,转换汇率后即为14.3 RMB,点击订购
,注册账号,找到支付宝支付方式付款后等待5分钟左右付款成功,再等待5分钟左右VPS的root密码会发送到注册账户的邮箱,ssh连接工具推荐使用MobaXterm,基础免费功能够用了。网页右上角“客户端
”为账户中心,进入后,左侧服务管理下的“主动服务
”为已购买的VPS,点击VPS列表中的“管理
”对VPS进行重装、重启、重置密码、撤单等操作。付款下的“充值余额
”就是字面意思。
对于VPS的手把手购买教程就介绍到这里。对于这家服务商的VPS务必注意不要让它承受太多以免失去响应,我就达到过这种程度:使用emby刮削电影造成各项硬件负载极高,ssh都无法连接,此时在个人中心的VPS管理页面中选择重启都没用,只能重装。
另外也可以去购买月抛机,所谓月抛意为每月需要重新购买不可续费,商家通过违规手段从云服务大厂获得机器,当然基本都是千兆无限流量,很适合短时间搬运大量文件,不适合部署需要长期使用的项目。推荐去hostlocal论坛搜索相关信息,购买时注意质保以及相关评测。
3. 搭建过程
3.1 项目介绍
此处有两个项目可供选择,均支持docker部署,docker对机器性能要求较高而且我也不习惯docker,有能力自己通过docker部署。主要介绍项目一webdav-aliyundriver搭建过程,可依葫芦画瓢搭建项目二。
- ① 项目一 webdav-aliyundriver
必须在Java环境下使用,资源占用高,支持双向读写文件。用Windows配置java环境挺麻烦的,本地有Linux环境或者虚拟机的话也可以直接在本地内网搭建。 - ② 项目二 aliyundrive-webdav
超级轻量简便,资源占用极低,支持Windows端、Linux端、路由器固件,由于我不是路由器玩家就不涉及路由器这块了。主要适用场景:在支持WebDAV的客户端观看阿里云盘的视频视频(我倒是一直把阿里云盘当单纯的资源中转工具盘)。另外,本项目有简便易用的安卓客户端分支webdav-aliyundriver-android。
3.2 搭建项目一
3.2.1 连接服务器
使用MobaXterm连接ssh,点击左上方Session
,选择ssh
:Remote host
填写服务器ip,Specify username
填写root
,port
默认22;
在下方Bookmark settings
中对Session name
自定义名称,点击OK
;
此时左侧栏出现自定义的Session name
,双击开始连接,粘贴邮件中的密码,终端不会直接显示密码,回车即可连接成功。
对于第一个项目和通过justhost购买的VPS单纯搬运资源而言,由于项目占用资源高、磁盘空间小,刚拿到VPS可以删去一些不必要的组件和Linux内核,对于第二个项目和其他配置的VPS请自行斟酌,所预装的组件、内核版本也不尽相同,特别注意:若VPS上还部署了其他项目则这些组件就不再是多余的了,删掉会导致安装、更新一些软件失败,还得再装回来,甚至重装系统。
使用命令dpkg -l
查看已安装组件,自行百度搜索删除内核方法。毕竟只有5G磁盘,搬运资源时任务缓存会占用一部分空间,为确保稳定性省吃俭用腾出空间。在终端界面底栏的各项监控参数中,可看到最后一项磁盘占用参数的变化。
删去不必要组件:
apt purge cpp cpp-7 g++ g++-7 gcc gcc-7 make nano vim-common vim-tiny -y
apt autoremove -y
删去多余老旧内核:
apt purge linux-headers-4.15.0-88 linux-headers-4.15.0-88-generic linux-image-4.15.0-88-generic linux-modules-4.15.0-88-generic linux-modules-extra-4.15.0-88-generic -y
update-grub
删去swap分区文件:
swapoff /swapfile
rm /swapfile
3.2.2 开始搭建
本项目已提供编译好的jar文件,可直接下载:
wget https://github.com/zxbu/webdav-aliyundriver/releases/download/v2.4.1/WebDAV-2.4.1.jar
偷一下懒:通过安装jar打包命令maven
的同时会安装java环境:
apt install maven
将jar文件移到单独文件夹方便管理,我这里移到root目录下的aw文件夹中。
在当前root目录中创建aw文件夹、将jar包重命名为webdav.jar
并移到aw
文件夹、进入aw目录:
mkdir aw
mv WebDAV-2.4.1.jar webdav.jar
mv webdav.jar aw
cd aw
开始启动,github项目已详细说明默认端口账密、启动参数、refreshToken的获取方式,我的启动命令是:
java -jar webdav.jar --aliyundrive.refresh-token="refreshToken" --server.port=端口 --aliyundrive.auth.user-name=用户名 --aliyundrive.auth.password=密码
详细参数自行按照项目说明改就是了。
若有兴趣也可自行编译jar包:
下载github仓库releases源码:
wget https://github.com/zxbu/webdav-aliyundriver/archive/refs/tags/v2.4.1.zip
解压源码、所有文件、进入源码根目录:
unzip v2.4.1.zip
ls -a
cd webdav-aliyundriver-2.4.1
安装打包命令maven
的同时会安装java环境:
apt install maven
开始编译jar文件:
mvn clean package -Dmaven.test.skip=true
大约两分钟左右即可编译完毕,得到的jar包在本目录下的target文件夹中,名为webdav-aliyundriver-2.4.1.jar,名字太长不方便操作,重命名为webdav.jar:
cd target
mv webdav-aliyundriver-2.4.0.jar webdav.jar
将jar文件移到单独文件夹方便管理,我这里还是移到root目录下的aw文件夹中。
进入root目录并创建aw文件夹、将jar包移到aw
文件夹、删除源码包和文件夹:
cd && mkdir aw
mv webdav-aliyundriver-2.4.1/target/webdav.jar aw
rm -r webdav-aliyundriver-2.4.1 v2.4.1.zip
3.2.3 后台运行
注意此时关闭MobaXterm的终端,VPS上面的进程也会终止,以下两种后台运行方式自己选择:
① nohup
将启动命令放入nohup &
之间:
nohup java -jar webdav.jar --aliyundrive.refresh-token="refreshToken" --server.port=端口 --aliyundrive.auth.user-name=用户名 --aliyundrive.auth.password=密码 &
运行日志会输出到同目录下的nohup.out文件中,执行cat nohup.out
显示日志内容。
终止进程:执行ps ax
查找含有以上启动命令的进程,列表开头即为进程ID,执行kill 对应ID号
杀死进程。也可以直接杀死所有java进程:pkill java
② screen
对于screen可以抽象理解为Windows打开的会话窗口,每次进入窗口都会复原上次正在执行的命令。
安装screen、新建名为aw的窗口并进入:
apt install screen -y
screen -S aw
输入启动命令:
java -jar webdav.jar --aliyundrive.refresh-token="refreshToken" --server.port=端口 --aliyundrive.auth.user-name=用户名 --aliyundrive.auth.password=密码
使用快捷键退出窗口保持后台运行:Ctrl+A+D
列出已有窗口、进入aw窗口:
screen -ls
screen -r aw
使用快捷键结束当前正在执行的命令(Linux通用):Ctrl+C
使用快捷键关闭窗口、终止进程、不再后台运行:Ctrl+D
,别按多了,退出终端也是这个快捷键。
也可使用上面的ps ax
命令查找进程ID并kill,也可直接pkill screen
关闭所有screen窗口及其中的进程。
以上完成后台运行WebDAV项目后,WebDAV链接即为http://服务器ip:端口
,一般WebDAV链接不支持浏览器访问,不过这个比较特殊,在浏览器地址栏访问WebDAV提示输入账密即为搭建成功,显示WebDAV文件列表。将WebDAV链接及账密填进各个支持WebDAV的软件中,即可读写阿里云盘里面的的文件,从而进行一系列自动化备份操作,比如PC端的Air Explorer,破解版也不少,不再过多介绍。对于本项目的安卓客户端分支webdav-aliyundriver-android,安装后在设置中填入token,在首页启动,本地ip为127.0.0.1
,如上述一样的用法。
3.2.4 安卓Termux
实在想折腾也可以在旧安卓手机上用termux搭建,不过局限较大,没有公网ip的话只能本机内部使用,得有稳定的网络环境而且相当吃性能,夏天建议有良好的散热不然小心烫手,强烈建议自备魔法代理工具以备不时之需。手机系统版本最低应为安卓7,因为最新版termux只支持安卓7及以上系统,低版本不受支持问题多,我这里使用的手机是realmeX安卓11。由于搭建步骤与在VPS上面如出一辙,重复操作我会一笔带过不再说明,请先仔细阅读上文VPS搭建过程。
开始搭建,过程中遇到打不开网站或者下载东西很慢等情况建议开启全局代理。
安装最新版termux。termux直装java环境挺麻烦的,依然习惯一条命令安装java环境,所以我们打开termux使用以下命令安装Linux子系统ubuntu并启动:
pkg install wget openssl-tool proot -y && hash -r && wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Ubuntu/ubuntu.sh && bash ubuntu.sh
启动ubuntu子系统:
./start-ubuntu.sh
此系统安装命令来自于AnLinux,可选择其他系统安装。
更新源、升级软件包、安装maven
命令及java环境:
apt update
apt upgrade
apt install maven -y
该Ubuntu子系统相当精简,缺少很多常用组件。安装下载命令wget
及解压命令unzip
:
apt install wget unzip -y
并如上文一样下载源码、解压、编译、重命名、移动:
wget https://github.com/zxbu/webdav-aliyundriver/archive/refs/tags/v2.4.0.zip
unzip v2.4.0.zip
cd webdav-aliyundriver-2.4.0
mvn clean package -Dmaven.test.skip=true
cd target
mv webdav-aliyundriver-2.2.0.jar webdav.jar
mkdir /root/aw
mv webdav.jar /root/aw
rm -r /root/v2.4.0.zip webdav-aliyundriver-2.4.0
cd /root/aw
由于网络因素手机编译jar包相当缓慢,毕竟涉及到的都是国外网站,我花了近20分钟才编译完毕,是VPS上面所花时间的10倍,所以我这里提供了编译好的2.4.0版本的jar包,如果也是编译太慢可直接下载使用:
mkdir /root/aw && cd /root/aw
wget https://om.chirmyram.com/rep/Plugin/aw/v2.4.0/webdav.jar
我这里选择使用screen让任务进入后台运行:
apt install screen -y
screen -S aw
java -jar webdav.jar --aliyundrive.refresh-token="refreshToken" --server.port=端口 --aliyundrive.auth.user-name=用户名 --aliyundrive.auth.password=密码
Ctrl+A+D
搭建好后,本机内部ip为127.0.0.1
,所以WebDAV链接为:http://127.0.1:端口
,可在本机上安装支持WebDAV的软件使用,如用nplayer播放视频,主机地址为127.0.0.1
,端口、账密为启动命令中指定的参数。
3.3 搭建项目二
此处主要介绍搭建过程,获取refresh token的步骤在项目一的github仓库中已有详细说明,后台运行进程的方式也在上文项目一的搭建过程中说明,不再赘述。
3.3.1 Windows端
在releases页面下载对应系统的exe包解压使用,先直接双击测试是否缺少依赖库,我在Windows11上首次运行提示“缺少VCRUNTIME.dll”文件,于是百度搜索下载该文件,将64位dll文件复制到C:/Windows/System32
路径下。我这里也提供直接下载方式vcruntime140。若还提示缺少其他dll文件自行在百度搜索对应文件下载复制,一般都会附带说明下载后复制到指定的位置。双击本项目程序后窗口一闪而过即可正常使用。
使用方式:在主程序目录下空白处,按住Shift键后在空白处单击右键,在右键菜单中选择“在此处打开 Powershell 窗口”,当然win11是在右键菜单更多选项中。此时在 Powershell 终端中输入启动参数(中文部分即为自行修改内容)并回车:
./aliyundrive-webdav.exe -I -U 用户名 -W 密码 -r 你的token
默认端口8080,自行参照github项目说明修改其他参数。在浏览器中输入http://127.0.0.1:8080
会显示网盘内容,这也就是WebDAV链接,可挂载于本机上的WebDAV软件中。
3.3.2 Linux端
安装相当简单,此项目已合并至python的pip库,Linux基本都内置python环境。安装本项目:
pip install aliyundrive-webdav
升级本项目:
pip install --upgrade aliyundrive-webdav
若提示Command ' pip 'not found
,多半pip版本不对,尝试换为pip3:
pip3 install aliyundrive-webdav
再极端点的情况是没有安装pip,那么就安装pip或pip3:
apt install python-pip
或:
apt install python3-pip
若遇到了更极端的情况就自行百度吧。
启动命令:
aliyundrive-webdav -I -U 用户名 -W 密码 -r 你的token
使用项目一搭建过程所述的nohup或screen方式运行于后台。
3.3.3 安卓Termux
参照项目一,仍然安装Ubuntu子系统并更新源。
安装pip3:
apt install python3-pip
安装本项目:
pip3 install aliyundrive-webdav
后面的步骤就和上文一致了。其实在安卓Termux中部署这俩项目都不简便,Linux子系统安装java环境、python3环境所需依赖包体积都是几百MB,折腾完后数据占用都快 1 G 了。
4. 挂载使用
Rclone是一个用于在多平台进行文件同步的命令行工具,支持多家网盘及文件传输协议。这里主要介绍Linux端挂载WebDAV的使用方式:
使用官方脚本安装最新rclone:
curl https://rclone.org/install.sh | sudo bash
接下来使用rclone挂载WebDAV,输入后回车,一步一步跟着rclone的提示来即可,下方#
号后面的内容为步骤翻译注释,不要全部复制粘贴进去了,仔细看提示根据自己的实际情况来修改,输入命令rclone config
开始配置:
rclone config
n/s/q> n #n为新建配置
name> aw #aw为自定义配置项名称
Storage> 34 #webadv储存类型序号,不同版本的rclone序号可能不一样
url> http://服务器ip:端口 #WebDAV链接
vendor> 4 #其他站点、服务或软件
user> *** #WebDAV用户名
y/g/n> y #输入自己的密码
password: #输入密码,确保密码输入正确,终端不会显示密码
password: #再次输入密码确认
bearer_token> 回车 #按回车键跳过这步
y/n> 回车 #按回车键默认不编辑高级配置
y/e/d> 回车 #按回车键默认为确认配置,此时已显示配置内容,仔细从显示的内容中查找规律
e/n/d/r/c/s/q> q #此时已显示新的配置项,输入q退出配置
输入rclone config file
显示rclone配置文件路径。
输入rclone config show
显示rclone配置文件内容。
自行搜索其他平台的rclone挂载OneDrive或其他网盘的教程,已有大量相关教程所以这里不再介绍。每个配置项都会在配置文件中一一列出来,文件内的密码都为再次加密过后的密码所以与原密码不同,只有rclone能解密识别,命令行配置过程中也不可输入加密后的密码,否则会被当做原密码造成配置错误无法读取文件。配置文件可被移动到其他VPS上面同目录重复使用,直接复制文件或文件内容即可,不必重新配置。
上文中我配置项的自定义名称为aw
,在rclone中每个配置项都可以看做一个磁盘盘符,用实际操作对rclone常用命令举例:
列出aw
中文件及文件夹:
rclone lsf aw:
不能漏掉配置项后面的英文冒号。
将aw
根目录下的文件1.txt
复制到本地root目录下(反之成立):
rclone copy aw:/1.txt /root
将aw
根目录下的文件1.txt
移动到另一个配置项od
根目录下的2
文件夹中,并显示移动进度:
rclone move aw:/1.txt od:/2/ -P
参数-P
即为显示任务进度。
还可以将配置项根目录或子文件夹挂载到本地硬盘,就像多一个本地磁盘一样,需先安装fuse,此处将aw
根目录挂载到本地磁盘根目录aw
文件夹下:
apt install fuse
mkdir /aw
rclone mount aw: /aw
挂载完成后使用命令ls /aw
即可显示文件内容,并支持使用linux原生命令cp
、mv
等操作文件,不过没有rclone本身的命令稳定。在Windows端使用rclone挂载到本地后也可在资源管理器中显示文件,不过这种挂载方式只能读写文件,毕竟挂载于本地的文件夹的文件系统与真实物理磁盘不一样,无法执行运行软件等操作。
安卓端仍然可以安装rclone挂载OneDrive网盘等其他网盘搬运资源:
apt install curl sudo -y
curl https://rclone.org/install.sh | sudo bash
不过由于网络环境的复杂性,搬运速度可能很慢,且不支持使用rclone挂载到本地。
好了你已经学会这个公式了,我们来开始解题吧。同样关闭终端后rclone的进程会终止,需要使用上文两种后台运行方式让rclone的任务保持运行。只是搬运资源的话以上复制、移动等简单操作足矣,其他操作请自行搜索rclone使用教程。
5. 结语
此处只介绍阿里云盘WebDAV的搭建、挂载、资源搬运教程,若需将使用域名、消除端口,还涉及域名的购买使用、nginx反向代理等杂糅知识,不过在使用宝塔面板后图形化操作会变得直观简洁,而在宝塔面板里面进行相关操作的教程在百度也是烂大街的,我自己也经常使用宝塔面板。如果我把这些再讲清楚,文章长度至少再增加几倍,将会造大量重复无意义的轮子,实在是顶不住。
自行去探索吧,我也是一步一百度走过来的。
本文作者:七米蓝
本文标题:《自建阿里云盘WebDAV功能并搬运资源》
本文链接:https://www.chirmyram.top/archives/aliyunwebdav
版权声明:本博客文章均采用CC BY-NC-SA 4.0许可协议,转载请注明出处!
大佬我想问下 账号密码是不是不对了 我连接不上
请问视频音画不同步是什么问题。
没遇到过。
资料费好多精力收集,就不怕突然用不了吗?
目前是有多重备份,而且还在继续增加备份。
想知道这种VPS连接延迟怎么样,一直想通过服务器搭建rustdesk远程投屏,国内带宽大一点有点贵,国外的延迟感觉会很高
你可以试试香港、日本的vps,我没折腾过rustdesk。
感谢回复!
请问挂载为本地时出现 2022/04/04 06:42:21 mount helper error: fusermount: fuse device not found, try 'modprobe fuse' first
2022/04/04 06:42:21 Fatal error: failed to mount FUSE fs: fusermount: exit status 1 怎么办
用的什么系统安装fuse了吗?
安装了,ubuntu 20.04 LTS
是我框架的关系吗,我的服务器是openvz的
这个帖子说重启就好:https://hostloc.com/thread-718119-1-1.html你试试。
可以了,谢谢
几乎用不了,rclone的速度无论是copy,move还是sync,速度都只有几kb/s
阿里云盘疑似会阻断国外ip,时不时停一下,一般等段时间会恢复速度,或者尝试换别家的VPS,我最近搬运还是有速度的。
图片炸了,我不好搬运哈 ~~
图片已恢复。