CloudDrive2 公测版本 - 自建多媒体平台

CloudDrive2 公测版本 - 自建多媒体平台
Photo by Jainath Ponnala / Unsplash
🔴IMPORTANT❗🔴 由于 CloudDrive 为闭源软件,无法完全确保其安全性,如果有担心建议使用单独网盘账号。

介绍

该软件能把 115/阿里云/PikPak/WebDAV 等网盘挂载到本地。目前暂无官网和作者详细信息,通过 Telegram 频道进行代码分发和讨论。作者回复非常积极,点赞。

Docker Hub: https://hub.docker.com/r/cloudnas/clouddrive2-unstable

Telegram Channel: https://t.me/cloud_nas

Telegram 讨论组:https://t.me/cloudnaschat

升级内容

CloudDrive2 整体提升非常大,个人感觉比较明显的点:

  1. 镜像使用 alpine,加上使用 rust 开发整体包的大小和资源占用都有很大提升。
  2. Plex 扫库不全的问题,试了库里 200 多直接扫没有出现不全的问题。
  3. 内嵌了 WebDAV 服务,不再需要用 NAS 转发了,方便很多。
  4. 支持推送变更通知文件系统,Plex/Emby 可实时监控文件夹获取文件变更推送。当然会有一些限制,网盘客户端上的变更无法同步,客户端不会主动通知 CD2;支持 CD2 的 Web 界面或者对挂载文件的修改可以主动通知。
  5. fuse 基于 3,终于可以完美支持 musl 系统了(OpenWrt)。
  6. PikPak 网盘支持,PikPak 的 Telegram 机器人是真的好使。

以下是完整升级清单,由于作者更新非常频繁以下内容针对 0.2.5 Build 23-01-02 14:54:46 版本:

CloudDrive2主要特性:
1.用rust重新开发了全部后端,和CloudDrive1相比CPU和内存占用率极大降低,Web前端暂时以Blazor WebAssembly形式复用CloudDrive的Blazor方案
2.linux版放弃fuse2支持,基于fuse3,完美支持基于musl的系统,包括openwrt,修复linux下plex扫库不全的问题
3.改进的多线程下载算法,可根据请求动态调整下载速度,尽量做到播放视频时可流畅拖动,拷贝文件时可高速下载
4.改进的WebDAV Client,兼容目前主流的WebDAV Server
5.WebDAV Server功能,可提供WebDAV服务给第三方客户端使用:WebDAV服务器地址: http://ip:19798/dav
用户名/密码:和登录Web界面的用户名密码相同
WebDAV Server支持设置root路径和只读属性,目前暂时没有Web设置的界面,需要手动修改confiig.toml文件的[webconfig]项目中webdav_root和webdav_readonly值,修改后重启生效
6.PikPak网盘支持
7.支持推送变更通知给挂载文件系统,jellyfin/emby/plex可选择实时监控文件夹以获得文件变更实时推送。变更来源支持对挂载文件系统的常规文件操作;支持通过网页的文件操作包括创建、删除、移动、重命名、导入SHA1、跨网盘迁移的变更操作;支持通过WebDAV客户端连接CloudDrive WebDAV Server的变更操作
8.115网盘增加访问速度控制,避免因访问过于频繁导致被115临时封禁。注意:如果多个CloudDrive2登录同一个115账号同时访问,访问控制可能会失效。
新增的网盘和新的改进都将在CloudDrive2上进行,CloudDrive原则上不再开发新功能
CloudDrive2目前还未实现的CloudDrive1特性主要包括:
1.暂不支持CloudDrive的分享功能
2.暂时不支持通过web挂载iso文件
3.暂时不支持阿里云盘的web界面媒体文件缩略图预览
4.暂时不支持通过Web界面上传文件
测试须知
1.CloudDrive2可以和CloudDrive共存,不影响CloudDrive使用
2.Windows版将安装最新版Winfsp,如已安装过CloudDrive1,将会提示卸载旧版本Winfsp后重启,按提示卸载Winfsp重启后重新执行安装即可,安装新版Winfsp后,CloudDrive1仍然可以正常工作
3.CloudDrive2目前提供Windows-X64、Linux x86_64、Linux arm64、Linux arm版本,其它架构的版本后续会陆续提供,Docker版安装运行的方法和CloudDrive1类似,仍然需要make-shared、映射/dev/fuse、设置管理员权限等前置操作和参数
和CloudDrive1的数据兼容
1.CloudDrive2在测试期间和CloudDrive1的本地数据不兼容,是两个独立的安装目录,用户云盘登录数据可以通过云端同步数据兼容
2.如果需要兼容CloudDrive1的数据,请先将CloudDrive1升级到最新版1.1.72,登录时选择账号信息同步到云端,等待一分钟左右即可完成数据升级
3.CloudDrive1数据升级完成后,CloudDrive2登录时也选择账号信息同步到云端,即可导入CloudDrive1的数据
4.注意:因为CloudDrive1不支持Pikpak,所以通过CloudDrive2添加Pikpak后,不要再使用CloudDrive1的云端同步功能,否则CloudDrive1可能会覆盖云端数据,导致Pikpak登录信息丢失
5.登录同一个账号的所有CloudDrive1请都升级到最新版,否则老版本CloudDrive1还可能把老数据覆盖到云端,导致数据不兼容
6.如果云端数据没有升级,CloudDrive2将会自动禁止同步到云端功能,以保证老数据不会丢失

安装步骤

本文是在威联通的 NAS 上进行安装,Docker 安装可参考 Docker 环境和 compose 的简要安装

docker-compose 配置文件

version: '3'

services:
  cloudnas:
    image: cloudnas/clouddrive2-unstable
    container_name: clouddrive2
    environment:
      - CLOUDDRIVE_HOME=/Config
      - UID=1000
      - GID=100
    volumes:
      - /share/Container/conf/clouddrive2/config:/Config
      - /share/CloudDrive:/CloudNAS:shared
    devices:
      - /dev/fuse:/dev/fuse
    restart: unless-stopped
    pid: "host"
    #privileged: true #or you can try capp_add -SYS_ADMIN
    cap_add:
      - SYS_ADMIN
    ports:
      - 19798:19798

配置说明

container_name: clouddrive2 容器名称,因为 1 代使用的 clouddrive,所以这里使用 clouddrive2
- CLOUDDRIVE_HOME=/Config 指定配置文件的目录,默认在 root 里面,需要和下面 volumes 中的配置目录保持一致
- UID- GID 可以使用命令 id {loginname} 查看当前登录用户的 uidgid
- /share/Container/conf/clouddrive2/config:/Config 配置文件目录映射,: 前面部分为主机上配置存储路径(按需修改),后面 /Configenvironment 中指定的 CLOUDDRIVE_HOME 目录。
- /share/CloudDrive:/CloudNAS:shared 挂载目录映射,: 把配置分成了三部分。第一部分/share/CloudDrive,通过 CloudDrive 挂载的网盘,会出现在该文件夹内(按需修改);第二部分 /CloudNAS 为 CloudDrive 中挂载的目录后面会用到。第三部分 :shared 为必选否则本地无法挂载,只能通用提供的 WebDav 服务访问。
ports 端口映射,CD1 为 9798,所以此处使用 19798 避免冲突也可按需修改,访问 Web 界面时使用该端口。

配置完成后,使用命令 docker compose up -d 或者 docker-compose up -d 启动。

CloudDrive2 配置

启动完成通过 http://ip:19798 进入 Web 界面进行管理和配置。基础注册就不重复了,设置好帐号、密码登录就能正常使用。

挂载点配置

CD2 和 CD1 有个很大的不同,CD1 是默认有挂载点,CD2 需要手动进行挂载点配置,否则会发现 WebDAV 能正常访问,但是本地文件夹内无文件的问题。因为这个原因折腾了好几天,最后在 Telegram 里和作者沟通了才找到这个低级问题。

点击 Web 界面的挂载按钮:

名字默认为 CloudDrive 会追加在上面的主机路径 /share/CloudDrive 下,最终路径为 /share/CloudDrive/CloudDrive。挂载点选择上面配置文件中的 /CloudNAS,点击挂载。

挂载完成后可以点击,右上角的挂载管理器查看:

如果挂载失败也有出错信息提示 FaileReason

配置完成后就可以进行网盘的挂载了,一般就是客户端扫码或者用户名、密码登录就不再赘述。

其它

删除挂载点

当本地文件被挂载后,在目录里面会生成一个 CloudDrive 挂载点(名字由前面 Web 界面的挂载点配置决定),直接无法删除需要先 umount 之后才能删除。如本地文件夹为 /share/CloudDrive,先停掉 docker,再运行命令

fusermount -u /share/CloudDrive/CloudDrive

umount 后就可以直接删除了。

Windows 挂载失败

群里看到很多 Windows 的客户端挂载失败的情况,可以尝试使用最新版 CD2,首先卸载 winfsp,重新下载 winfsp-1.12.22339.msi 使用默认地址安装后重试。