在甲骨文云ARM服务器上架设阿里云盘webdav并挂载到各个终端

前几天挂载了onedrive教育版到了服务器,但是今天想着万一以后没有教育邮箱了,onedrive教育版可能就用不了了,并且我的onedrive教育版只有1T空间,而我的阿里云盘目前有2T。

正文

(1)tickstep / aliyunpan

在docker hub 上找到个镜像https://hub.docker.com/r/tickstep/aliyunpan-webdav,追踪到了这个GitHub 项目:

关键是支持ARM,我这里主要是用他的web-dav共享盘的功能

安装

docker run -d --name=aliyunpan-webdav --restart=always -p 23077:23077 -e TZ="Asia/Shanghai" -e ALIYUNPAN_REFRESH_TOKEN="<your refreshToken>" -e ALIYUNPAN_AUTH_USER="admin" -e ALIYUNPAN_AUTH_PASSWORD="admin" -e ALIYUNPAN_PAN_DRIVE="File" -e ALIYUNPAN_PAN_DIR="/" tickstep/aliyunpan-webdav:v0.2.0
 
 
ALIYUNPAN_REFRESH_TOKEN RefreshToken
ALIYUNPAN_AUTH_USER webdav登录用户名
ALIYUNPAN_AUTH_PASSWORD webdav登录密码
ALIYUNPAN_PAN_DRIVE 网盘类型,可选: File-文件 Album-相册
ALIYUNPAN_PAN_DIR 网盘文件夹的webdav服务根目录,直接填名称就行,如我的/VPS

或者用docker-compose运行

version: '3'
services:
  webdav:
    image: tickstep/aliyunpan-webdav:<tag>
    container_name: aliyunpan-webdav
    restart: always
    ports:
      - 23077:23077
    environment:
      - TZ=Asia/Shanghai
      # refresh token用于登录
      - ALIYUNPAN_REFRESH_TOKEN=b9123...13e66a1
      # webdav 登录用户名
      - ALIYUNPAN_AUTH_USER=admin
      # webdav 登录密码
      - ALIYUNPAN_AUTH_PASSWORD=admin
      # 指定网盘文件夹作为webdav服务根目录
      - ALIYUNPAN_PAN_DIR=/
      # 上传下载链接类型:1-默认 2-阿里ECS环境(ECS必须是经典网络类型)
      - ALIYUNPAN_TRANSFER_URL_TYPE=1
      # 上传数据块大小,单位为KB,默认为1024KB,建议范围1024KB~10240KB
      - ALIYUNPAN_BLOCK_SIZE=10240

nginx

server {
       listen 443;
       server_name your.host.com;
       ssl on;
       root html;
       index index.html index.htm;
       ssl_certificate /path/to/your/file.pem;
       ssl_certificate_key /path/to/your/file.key;

       ssl_session_timeout 5m;
       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
       ssl_prefer_server_ciphers on;

       # webdav server
       location /{
          root html;
          proxy_pass http://127.0.0.1:23077;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header REMOTE-HOST $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_set_header Host $http_host;
          proxy_redirect off;
        }
   }

使用rclone挂载到服务器

挂载参见上一篇文章:

申请onedrive api并使用rclone将其挂载为本地磁盘

按照步骤挂载成功:

然后输入命令:

rclone mount aliyunadv:/ /www/wwwroot/aliyundav --cache-dir /tmp --allow-other --vfs-cache-mode writes --allow-non-empty --uid 1000 --gid 1000
#uid 和 gid 是有权操作的用户,输入 id www 查询

(2)alist-org / alist

安装

在查找过程中,我又发现了更好用的挂载dav的软件Alist,并且资料比较详细:

直接按照文档介绍的在docker里run起来,然后进入后台设置,成品图:

nginx配置

参考文章:https://alist-doc.nn.ci/docs/install/reverse-proxy

在我的npm里添加如下反向代理代码:

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Range $http_range;
    proxy_set_header If-Range $http_if_range;
    proxy_redirect off;
    proxy_pass http://127.0.0.1:5244;
    # 上传的最大文件尺寸
    client_max_body_size 20000m;
}

用rclone挂载:

用rclone挂载参考这篇文章:https://blog.csdn.net/shamqu/article/details/123288539

其中的挂载命令,我之前踩坑应该是命令错了,不能照搬onedrive的

 rclone mount alist:/ /www/wwwroot/alist --cache-dir /tmp --allow-other --vfs-cache-mode writes --allow-non-empty --uid 1000 --gid 1000

alist的网页端做的不错,可以挂载多种网盘,所以我把上一种方法挂载的阿里云盘又再次挂载在他的网页端了。

成品图:

宝塔里容量显示不正常,不过不影响使用

宝塔里通过dav操作文件容易超时,我一般用Alist里直接挂载的

Alist网页端

添加挂载命令到开机启动

新建文件start_dav.sh,并写入之前的挂载命令命令

#! /bin/bash
rclone mount aliyunadv:/ /www/wwwroot/aliyundav --cache-dir /tmp --allow-other --vfs-cache-mode writes --allow-non-empty --uid 1000 --gid 1000

建立start_alist.sh

#! /bin/bash
rclone mount alist:/ /www/wwwroot/alist --cache-dir /tmp --allow-other --vfs-cache-mode writes --allow-non-empty --uid 1000 --gid 1000

然后使用crontab -e设置开机启动:

crontab -e
#进入编辑,输入如下行
#例如:
#@reboot /home/test.sh #开机马上启动这个脚本,如果脚本中有依赖系统中其他服务,会发生因为其他服务启动不完全,而导致自己脚本失败的情况
#@reboot sleep 60; /home/test.sh #最好加上休眠一会,等待其他服务启动完全了,再启动自己的脚本
#@reboot (sleep 60; sh /home/test.sh) #设置脚本在启动后的60s启动、/home\test.sh 就是脚本的存放地址

@reboot (sleep 40; sh /root/start_dav.sh)
@reboot (sleep 40; sh /root/start_alist.sh)

保存后重启服务器,全部正常

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇