玩客云搭建云盘下载服务-变身24小时云盘下载机
前言
云盘下载的痛点:
- 要登陆,要下载各大云盘软件。
- 下载大文件时,主力电脑后台要一直挂着云盘服务。
在玩客云上搭建一个可以24小时下载任意云盘文件的的服务后:
- 免频繁登陆云盘,不用再下载各种云盘app。
- 下载大文件,无需值守。特别是晚上的时候再也不用亮着主力电脑的屏幕在那下载文件。
- 便宜,相较于大几千的nas设备。玩客云很香。
主要流程:
通过Alist 使用 WebDAV 方式接入云盘。查看AList文档
ARM 设备(玩客云)上通过
rclone
将云盘挂载到本地。把云盘文件拷贝到挂载在玩客云上的硬盘。
往期玩客云折腾
在拆了几次机器,刷了几次底包后,终于把服务搭起来了。
alist安装与配置
使用docker run命令创建并运行alist容器
1 | docker run -d \ |
浏览器输入ip:5244
登陆alist
首次启动,需要到日志中获取登陆密码
输入:
1 | docker logs alist |
找到这一行:
1 | Successfully created the admin user and the initial password is: ghjfg |
用户名:admin
密码:ghjfg
注意把ghjfg替换成你自己的
添加云盘
以配置阿里云盘为例,其他云盘看alist官方文档。
挂载路径建议填写云盘名称,设置的名称会在主页显示。
reclone安装与配置
首先创建挂载目录
1 | sudo mkdir -p /mnt/alist |
安装 rclone及必要软件包
在 ARM 设备上先安装 rclone
。rclone
支持多种平台,包括 ARM。
安装 rclone
在 ARM 设备上通过以下命令安装 rclone
:
1 | curl https://rclone.org/install.sh | sudo bash |
or
1 | sudo apt install rclone |
检查并安装 FUSE:
rclone mount
依赖 FUSE(文件系统用户空间工具),如果系统没有正确安装或配置 FUSE,rclone
将无法挂载。
1 | sudo apt-get install fuse |
安装完 FUSE 后,确保 FUSE 模块已加载:
1 | sudo modprobe fuse |
没有任何输出即表示已加载
安装 FUSE3
系统中缺少 fusermount3
也会出现挂载错误,FUSE3
是 FUSE 的一个执行文件,用于管理用户空间的文件系统挂载。
1 | sudo apt-get install fuse3 |
验证安装
安装完成后,验证 fusermount3
是否存在:
1 | which fusermount3 |
这应该会显示 fusermount3
的路径,确认它已正确安装。
确保挂载点 /mnt/alist
有权限允许 rclone
挂载:
1 | mkdir -p /mnt/alist |
rclone 配置 WebDAV
运行以下命令开始配置:
1 | rclone config |
选择
n
新建一个远程配置。自己给配置命名,例如
aliyun-webdav
在存储类型中选择
webdav
。输入 Alist 提供的 WebDAV URL(
http://<alist-ip>:<port>/dav
)。注意:
http://<alist-ip>:<port>/dav
是挂载alist中所有云盘,如果想挂单一云盘,比如阿里云请填写http://<alist-ip>:<port>/dav/aliyun/
,其中aliyun字段是在alist中配置阿里云盘时定义的挂载路径。选择 WebDAV 协议的类型,选择 Other site/service or software\ (other)。
输入alist登陆用户名
输入y使用 type in my own password
输入alist登陆密码
回车跳过bearer_token验证(Alist 通常不使用 Bearer Token 认证)
输入n跳过
Edit advanced config?
配置检查配置是否正确,输入y确认完成配置
1 | Configuration complete. |
输入q退出配置
挂载云盘到本地
使用 rclone mount
挂载alist云盘到本地:
1 | rclone mount aliyun-webdav:/ /mnt/alist --daemon |
aliyun-webdav:/
是配置的远程名称,表示通过 WebDAV 访问云盘(alist挂载的云盘)/mnt/alist
是要挂载的本地目录。--daemon
表示在后台挂载,挂载过程不会阻塞终端。
执行后没有任何回应大概率就是成功了
验证挂载
挂载成功后,你可以使用以下命令查看挂载情况:
1 | mount | grep /mnt/alist |
返回类似alist-webdav: on /mnt/alist type fuse.rclone (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
1 | df -h |
并通过以下命令查看挂载的文件:
1 | ls /mnt/alist |
可以看到之前alist添加的云盘存储,这里添加了阿里云盘和夸克云盘。
设置开机自动挂载
先卸载挂载。避免后续systemd启动已经在运行的挂载后,出现挂载服务状态出错。
1 | sudo umount /mnt/alist |
如果希望每次启动时自动挂载阿里云盘,可以通过 systemd
配置自动挂载:
创建一个
systemd
服务文件:1
sudo nano /etc/systemd/system/rclone-alist.service
添加以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[Unit]
Description=Mount Aliyun using rclone
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/rclone mount aliyun-webdav:/ /mnt/alist --vfs-cache-mode writes
ExecStop=/bin/fusermount -u /mnt/alist
Restart=on-failure
RestartSec=5s
StartLimitInterval=10s
StartLimitBurst=3
[Install]
WantedBy=default.target注意:1. 如果挂载的阿里云盘ExecStart需添加参数
1
--header "Referer:https://www.aliyundrive.com/"
2.ExecStart这一行的
aliyun-webdav
注意替换成前面设置的reclone配置名重新加载systemd配置:
1
sudo systemctl daemon-reload
启用并启动服务:
1
2sudo systemctl enable rclone-alist
sudo systemctl restart rclone-alist查看服务运行状态:
1
sudo systemctl status rclone-alist
停止服务:
1
sudo systemctl stop rclone-alist
使用
直接cp命令拷贝
比如想把云盘的电影下载到连接在玩客云的硬盘上(tip:我的硬盘挂载在/mnt/sda1
目录上)
1 | cd /mnt/alist/夸克云盘/来自:分享/影音/电影 |
运行后,cpu的负荷马上起来了。
查看硬盘目录,电影已经下载了1.6个g。
完成下载
使用脚本逐个下载
使用rsync脚本逐个目录同步拷贝
1 | !/bin/bash |
辅助脚本
解决云盘文件部分下载失败
思路:删除云盘中下载成功文件,保留失败文件,再次运行脚本进行下载
失败日志如下
脚本:
1 | !/bin/bash |
使用方法,把日志报错,复制到jj.txt,脚本和jj.txt放到一个目录,执行脚本。
最后
再贴个裸机两三天的玩客云