qqq53212 / aliyundrive-webdav

阿里云盘(https://www.aliyundrive.com/) 的webdav协议开源实现

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

image image

说明

1.1.0版本支持阿里Teambition网盘的webdav协议

2.x版本仅支持阿里云盘, 不再维护Teambition网盘版本

3.x版本支持阿里云盘OpenApi

目录

aliyundrive-webdav

本项目实现了阿里云盘的webdav协议, 只需要简单的配置一下, 就可以让阿里云盘变身为webdav协议的文件服务器。 基于此, 你可以把阿里云盘挂载为Windows、Linux、Mac系统的磁盘, 可以通过NAS系统做文件管理或文件同步, 更多玩法等你挖掘

直接运行(Windows/Linux/macOS/Android)

点击下载

  • Windows
aliyundrive-webdav-windows-amd64.exe
  • Linux(X64)
./aliyundrive-webdav-linux-amd64
  • Linux(ARM64)
./aliyundrive-webdav-linux-arm64
  • macOS(Intel)
./aliyundrive-webdav-darwin-x86_64
  • WebApi
./aliyundrive-webdav-darwin-x86_64 --aliyundrive.driver=WebApi

Jar包运行

建议自己下载源码编译, 以获得最新代码

java -jar webdav.jar

容器运行

mkdir $(pwd)/conf
docker run -d \
  --name=aliyundrive-webdav \
  --restart=always -p 8080:8080  \
  -v /etc/localtime:/etc/localtime \
  -v $(pwd)/conf:/conf \
  -e TZ="Asia/Shanghai" \
  -e ALIYUNDRIVE_DRIVER=OpenApi \
  -e ALIYUNDRIVE_REFRESH_TOKEN="your refreshToken" \
  -e ALIYUNDRIVE_AUTH_PASSWORD="admin" \
  eritpchy/aliyundrive-webdav

# /conf 挂载卷自动维护了最新的refreshToken, 建议挂载
# ALIYUNDRIVE_AUTH_PASSWORD 是admin账户的密码, 建议修改

Docker-Compose

version: "3.0"
services:
  aliyundrive-webdav:
    image: eritpchy/aliyundrive-webdav
    container_name: aliyundriver
    environment:
      - TZ=Asia/Shanghai
      - ALIYUNDRIVE_DRIVER=OpenApi
      - ALIYUNDRIVE_REFRESH_TOKEN=refreshToken
      - ALIYUNDRIVE_AUTH_USER_NAME=admin
      - ALIYUNDRIVE_AUTH_PASSWORD=admin
    volumes:
      - ./docker/conf:/conf
    ports:
      - 6666:8080
    restart: always

# “refreshToken”请根据下文说明自行获取。
# “ALIYUNDRIVE_AUTH_USER-NAME”和“ALIYUNDRIVE_AUTH_PASSWORD”为连接用户名和密码, 建议更改。
# “./docker/conf/:/conf”, 可以把冒号前改为指定目录, 比如“/homes/USER/docker/alidriver/:/conf”。
# 删除了“/etc/localtime:/etc/localtime”, 如有需要同步时间请自行添加在environment下。
# 端口6666可自行按需更改, 此端口为WebDAV连接端口,8080为容器内配置端口, 修改请量力而为。
# 建议不要保留这些中文注释, 以防报错, 比如QNAP。

Kubernetes

参考根目录内中的k8s_app.yaml, 需要文件中修改container的环境变量值。
use this to deploy in truenas scale

sudo k3s kubectl apply -f k8s_app.yaml

or other k8s cluster

sudo kubectl apply -f k8s_app.yaml

参数说明

--aliyundrive.refresh-token
    阿里云盘的refreshToken, 获取方式见下文
--server.port
    非必填, 服务器端口号, 默认为8080
--aliyundrive.auth.enable=true
    是否开启WebDav账户验证, 默认开启
--aliyundrive.auth.user-name=admin
    WebDav账户, 默认admin
--aliyundrive.auth.password=admin
    WebDav密码, 默认admin
--aliyundrive.work-dir=./conf
    token挂载路径 (如果多开的话, 需修改此配置)
--aliyundrive.driver=OpenApi
    驱动引擎, 默认官方OpenApi, 可选WebApi

    

SDK使用

//依赖
compileOnly "org.projectlombok:lombok:1.18.26"
annotationProcessor "org.projectlombok:lombok"
implementation "com.squareup.okhttp3:okhttp:3.12.13" //api19
implementation "com.squareup.okhttp3:logging-interceptor:3.12.13" //api19
implementation "com.google.code.gson:gson:2.8.9"

//主要
implementation "net.xdow:aliyundrive-sdk-openapi:1.0.4"
implementation "net.xdow:aliyundrive-sdk-webapi:1.0.4"

//可选
implementation "net.xdow:webdav:1.0.4"
implementation "net.xdow:webdav-jakarta:1.0.4"
implementation "net.xdow:webdav-javax:1.0.4"
implementation "net.xdow:aliyundrive-webdav-internal:1.0.4"
implementation "net.xdow:aliyundrive-android-core:1.0.4"
implementation "net.xdow:jap-http:1.0.4"
implementation "net.xdow:jap-http-jakarta-adapter:1.0.4"
implementation "net.xdow:jap-http-javax-adapter:1.0.4"

基础用法

AliyunDrive.newAliyunDrive()

QQ群

群号(已满):789738128

二群群号(已满):979024890

三群群号(已满):212673498

四群群号(已满):752067171

五群群号:703607910

新手教程

imaage

客户端兼容性

客户端 下载 上传 备注
群辉Cloud Sync 可用 可用 使用单向同步非常稳定
Rclone 可用 可用 推荐, 支持各个系统
Mac原生 可用 可用
Windows原生 可用 有点小问题 不建议, 适配有点问题, 上传报错
RaiDrive 可用 可用 Windows平台下建议用这个

浏览器获取refreshToken方式(仅WebApi需要)

方式1

  1. 先通过浏览器(建议chrome)打开阿里云盘官网并登录:https://www.aliyundrive.com/drive/
  2. 登录成功后, 按F12打开开发者工具, 点击Application, 点击Local Storage, 点击 Local Storage下的 https://www.aliyundrive.com/, 点击右边的token, 此时可以看到里面的数据, 其中就有refresh_token, 把其值复制出来即可。(格式为小写字母和数字, 不要复制双引号。例子:ca6bf2175d73as2188efg81f87e55f11)
  3. 第二步有点繁琐, 大家结合下面的截图就看懂了 image

方式2

  1. 先通过浏览器(建议chrome)打开阿里云盘官网并登录:https://www.aliyundrive.com/drive/
  2. 登录成功后, 在地址栏输入 javascript: imgage
  3. 粘贴下列代码到javascript: 后面,然后按回车键 image 弹窗 image
var p=document.createElement('p');p.style='text-align:center;margin-top:30px';p.innerHTML='refresh_token: <span style="color:red;">'+JSON.parse(localStorage.getItem('token')).refresh_token+'</span>';var win=window.open('','_blank','width=800,height=100');win.document.body.appendChild(p);

同时, 也可以将上述代码组合为

javascript:var p=document.createElement('p');p.style='text-align:center;margin-top:30px';p.innerHTML='refresh_token: <span style="color:red;">'+JSON.parse(localStorage.getItem('token')).refresh_token+'</span>';var win=window.open('','_blank','width=800,height=100');win.document.body.appendChild(p);

添加为浏览器书签, 在https://www.aliyundrive.com/drive/ 页面点击该书签也会弹出refresh_token弹窗

功能说明

支持的功能

  1. 查看文件夹、查看文件
  2. 文件移动目录
  3. 文件重命名
  4. 文件下载
  5. 文件删除
  6. 文件上传(支持大文件自动分批上传)
  7. 支持超大文件上传(官方限制30G)
  8. 支持WebDav权限校验(默认账户密码:admin/admin)
  9. 文件下载断点续传
  10. Webdav下的流媒体播放等功能
  11. 支持文件名包含 / 字符

暂不支持的功能

  1. 移动文件到其他目录的同时, 修改文件名。比如 /a.zip 移动到 /b/a1.zip, 是不支持的
  2. 文件上传断点续传
  3. 部分客户端兼容性不好

已知问题

  1. 没有做文件sha1校验, 不保证上传文件的100%准确性(一般场景下, 是没问题的)
  2. 通过文件名和文件大小判断是否重复。也就是说如果一个文件即使发生了更新, 但其大小没有任何改变, 是不会自动上传的

免责声明

  1. 本软件为免费开源项目, 无任何形式的盈利行为。
  2. 本软件服务于阿里云盘, 旨在让阿里云盘功能更强大。如有侵权, 请与我联系, 会及时处理。
  3. 本软件皆调用官方接口实现, 无任何“Hack”行为, 无破坏官方接口行为。
  4. 本软件仅做流量转发, 不拦截、存储、篡改任何用户数据。
  5. 严禁使用本软件进行盈利、损坏官方、散落任何违法信息等行为。
  6. 本软件不作任何稳定性的承诺, 如因使用本软件导致的文件丢失、文件破坏等意外情况, 均与本软件无关。

About

阿里云盘(https://www.aliyundrive.com/) 的webdav协议开源实现


Languages

Language:Java 99.7%Language:Dockerfile 0.3%Language:Shell 0.0%