
简介
- alist可以轻松挂载各大主流云盘,并转换成webdav服务
- rclone同样支持很多云存储驱动,包括webdav,可以实现增量数据同步,高效便捷
- alist搭配rclone,可以实现本地与本地、本地与云盘、云盘与云盘之间的数据同步,保证数据存储安全
- 下面是实现nas本地文件同步阿里云盘数据的操作用例
第一步:安装alist,并且把阿里云盘指定目录挂在到alist
- docker安装alist,新建配置文件docker-compose.yml,配置如下:
version: '3' services: alist: image: 'xhofe/alist:latest' volumes: - ./data:/opt/alist/data ports: - '5244:5244' environment: - PUID=0 - PGID=0 - UMASK=022 - TZ=Asia/Shanghai restart: unless-stopped - 一键启动运行
docker-compose up -d
- 获取默认登录账号密码
docker-compose logs

- 登录alist后台,添加阿里云盘open驱动,设置刷新token,具体参考官方指导:https://alist.nn.ci/zh/guide/drivers/aliyundrive_open.html
- 添加阿里云盘open驱动和挂在路径

- webdav策略使用“本地代理”

- 设置阿里云盘的刷新token,指定挂载的根目录

- 挂载上了

- 因为要用到alist提供的webdav服务,所有需要开启用户webdav权限

- 添加阿里云盘open驱动和挂在路径
第二步:安装rclone,配置alist提供的webdav服务
- 具体同步逻辑如下图所示

- 安装配置可参考:https://github.com/luler/rclone_docker ,拉代码,进入目录
//拉代码 git clone https://github.com/luler/rclone_docker.git //进入目录 cd rclone_docker
- 修改config/rclone.conf,配置远程存储驱动,这里使用webdav为例,其他驱动请参考rclone官方文档:https://rclone.org/docs/
rclone要求webdav的密码不能直接使用明文,需要加密一下docker run --rm -it ghcr.io/luler/rclone_docker:latest rclone obscure "fUlaQHte"

config/rclone.conf配置内容如下:[mywebdav] type = webdav url = http://192.168.1.105:5244/dav/ # 这里填写alist的webdav地址,要填容器内可以访问alist的ip或域名 vendor = other # 一般默认这个即可 user = admin # webdav用户名 pass = a-Zsy2HhSSgMYC40dG_WevAGFMaUFzys # webdav密码,注意:这里需要使用rclone的混淆密码,如:rclone obscure "你的明文密码" #no_check_certificate=true # 如果需要跳过SSL验证
- 修改config/crontab,配置定时任务,如下示例:
# 每分钟执行备份,flock防止重复执行 * * * * * flock -n /tmp/rclone.lock rclone sync mywebdav:我的阿里云盘目录/ /data --log-file=/var/log/rclone-sync.log --log-level=INFO --stats=10m
- 配置好了之后,代码目录下已配置好docker-compose.yml,使用docker-compose一键启动即可
docker-compose up -d
- 查询执行情况
docker-compose logs
成功执行完毕

云盘数据已被同步下来

如果失败,可以打开rclone的日志文件logs/rclone-sync.log,以便分析原因
总结
- 普通阿里云盘用户有下载限速,如果数据很大,第一次rclone同步会耗时很久,第一次完成后,后续就是增量同步了
- 本用例只是一个简单用例,类似的,使用alist、rclone还可以扩展到更多使用场景










