通过Alist使TrueNAS同步到OneDrive

通过Alist使TrueNAS同步到OneDrive

KaguraiYoRoy
2025-03-13 / 0 评论 / 78 阅读 / 正在检测是否收录...

背景

手上有个E5订阅,本来用的方案是Docker运行driveone/onedrive:edge的方式来实现同步,但是这个方案一个是这种方式没有GUI/WebUI,一个是每次同步的时候都会占用掉CPU 25%-50%的性能。考虑到TrueNAS自带的同步方案可以向WebDAV同步,因此想到能用Alist来挂载OneDrive并转换成WebDAV供TrueNAS挂载。

折腾过程

安装Alist

为Alist创建持久化存储文件夹,并根据Alist官方文档编写Docker Compose:

services:
  alist:
    environment:
      - PUID=3000
      - PGID=950
      - UMASK=022
    image: xhofe/alist:latest
    ports:
      - '8088:5244'
    restart: always
    volumes:
      - /mnt/systemdata/DockerData/alist/etc:/opt/alist/data
      - /mnt/data/Storage:/mnt/data

此处我将Alist端口开放在8088,其中映射/mnt/data/Storage是为了让Alist可以管理本地的存储;映射/mnt/systemdata/DockerData/alist/etc作为存储Alist数据的文件夹。
关于如何配置Alist上的OneDrive本文不做讨论,请查询Alist官方文档。此处我将我的OneDrive挂载在/OneDrive

完成后进入Alist后台-用户,编辑你的用户或者创建一个新用户,勾选Webdav 读取Webdav 管理以使得该用户可以使用WebDAV。

3.png

配置TrueNAS同步

进入TrueNAS后台-Credentials-Backup Credentials,添加一个Cloud Credential,参数如下:

  • Provider: WebDAV
  • Name: 自定义
  • URL: Alist地址+/dav,例如我这里填写http://127.0.0.1:8088/dav
  • WebDAV Service: OTHER
  • Username和Password: Alist账号密码

1.png

Verify Credential确认没问题之后保存。

接着进入TrueNAS后台-Data Protection,添加一个Cloud Sync TaskProvider下的Credentials选择刚刚创建的Alist的WebDAV,点击下一步。此处的参数有很多种,详解如下:

  • Direction: 分为PULL和PUSH,分别对应云端同步到本地和本地同步到云端
  • Transfer Mode:
  • COPY: 复制文件,若源文件夹中先前有的文件后来删除了云端的不会被删除
  • MOVE: Copy后删除源文件夹相关文件
  • SYNC: 保持源文件夹和目标文件夹同步,源文件夹删除的文件也会在目标里删除
  • Directory/Files: 即本地需要同步的文件或文件夹
  • Folder: 即云端需要同步的文件夹
  • Description: 注释
  • Schedule: Cron定时,可以使用他预设的时段或者自己编写

2.png

比如我这里选择的是PUSH,SYNC,从/mnt/data/Storage同步到/OneDrive/TrueNAS,每天0:00执行。

编辑完成后保存,即可在你设置的时段自动将本地文件上传到OneDrive。


旧方案的项目地址:

参考文章:

0

评论 (0)

取消