Docker系列 搭建支持WebDav的网盘聚合平台Alist
本文最后更新于 47 天前,如有失效请评论区留言。

本博客用什么VPS?创作不易,您可以支持苯苯(~ ̄▽ ̄)~

前言

我在博文《Docker系列 深度使用nextcloud(九) 硬盘挂载》里讲述了如何在win10中通过WebDav挂载一个Nextcloud,也提及了一个优秀的项目Alist。实际上,Alist可以聚合多种类型的网盘/存储协议,特别是国内网盘(比如阿里云/百度云/夸克网盘/天翼云盘等)和常见文件协议(WebDav/SFTP/FTP):

NVIDIA_Share_YY0Klud9rQ

比如,我这里挂了4个网盘(BaiduDisk、nextcloud-rn2、nextcloud-nas、aliyun-01,一个百度网盘、一个阿里云盘、两个Nextcloud)。尽管它们来自不同的平台,但基于Alist,我可以轻松优雅地访问每一个网盘的文件:

msedge_i1n8on2TeQ

值得一提的是,作为一个网盘“缝合怪”,Alist还提供了一个对外的统一的WebDav API。这个特性使得我们可以像管理某个Nextcloud一样,在win10里通过WebDav挂载Alist,从而“间接”访问你的各种网盘!当你通过Alist访问一个文件时,访问流程大致是:本地电脑(比如Win10)→WebClient(基于Alist的WebDav)→Alist→Alist的某个网盘→网盘文件

以我自己win10电脑里挂载的Alist为例,可以看到多个网盘已经变成了我电脑里的“文件夹”:

explorer_cgIJyxwcUf

是不是很酷呀!所以当我完成教程《Docker系列 深度使用nextcloud(九) 硬盘挂载》后,我就迫不急待地想要尝试Alist。它的文档很详细,安装难度不高。如果你网盘很多,真的推荐搞一个Alist喔!

这里分享一下我的自建Alist,访客身份可以获得一些与本博客直接相关的、Racknerd VPS中Nextcloud的资源,比如文献、电子书等,大家可以体验一下。下面我们开始安装Alist——当然,像以前大多数应用一样,基于Docker的方式 (~ ̄▽ ̄)~

测试环境

主力Racknerd VPS里测试。

uname -a # Linux racknerd-74a241 5.4.0-28-generic #32-Ubuntu SMP Wed Apr 22 17:40:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

docker --version # Docker version 20.10.21, build baeda1f

docker-compose --version # Docker Compose version v2.4.1 

准备工作

指定工作目录:

work=~/docker/alist && mkdir -p $work && cd $work

开放端口

sudo ufw allow 5244/tcp comment 'alist' && sudo ufw reload

配置yaml

创建docker-compose.yml文件:

vim $work/docker-compose.yml

添加以下内容:

version: "2"

services:
  app:
    image: xhofe/alist:latest
    container_name: alist
    volumes:
      - ./app:/opt/alist/data
    ports:
      - 5244:5244 # 按需修改
    restart: unless-stopped
    networks:
      - default

networks:
  default:
    name: alist

上线服务:

cd $work && docker-compose up -d

查看用户admin的相关信息:

docker exec -it alist ./alist admin

输出信息为:

INFO[2022-12-08 13:38:02] reading config file: data/config.json
INFO[2022-12-08 13:38:02] load config from env with prefix: ALIST_
INFO[2022-12-08 13:38:02] init logrus...
INFO[2022-12-08 13:38:02] admin user's info:
username: admin
password: XXXXXX

记住usernamepassword。它们是分别是用来登陆Alist后台的用户名/密码。

NPM设置

不了解Nginx Proxy Manager用法的小伙伴,请看《Docker系列 两大神器NPM和ddns-go的安装》。

通过ddns-go或者域名托管后台解析一个域名example.com

NPM反代http://172.17.0.1:5244。无特殊设置。如下图:

image-20221208224142904

初识Alist

上面日志输出的adminXXXXXX就是登陆Alist的初始密码。刚刚开始登陆的时候会有一个报错,没关系,因为它此时还没有挂载任何硬盘。你可以从下面的管理进入后台:

NVIDIA_Share_Ov1AJNWXQh

后台大致界面如下图所示:

NVIDIA_Share_pJm1POfB9Q

修改帐户/密码

很简单,就在个人资料里改动即可:

NVIDIA_Share_ToAlXXFGki

个人建议你要修改,因为默认的密码是一个弱密码。有bitwarden完全不虚呀!

添加硬盘

Alist的文档写得挺清楚了,大家多看看。原理大概是,如果你要声明对某个网盘的所有权,你需要获得该网盘的refresh token刷新令牌)。这个刷新令牌只有你登陆成功后才可以看到,每个人的都是不一样的。

如果是挂载支持WebDav协议的硬盘,则需要提供帐户/密码来声明你对该网盘的所有权(对于Nextcloud可以这样操作)。

具体挂载位置如图所示:

NVIDIA_Share_pk6S7so62W

下面我举几个例子。

阿里云盘

文档操作。

主要是这个token。你可以登陆阿里云盘(https://www.aliyundrive.com/drive),按F12后根据下图的提示找到refresh_token:

NVIDIA_Share_b9a5ZQpQYb

然后,将这个token填入刷新令牌下方的空栏即可。

NVIDIA_Share_MueZTzoJNp

最后,改一下挂载路径。可以随便起个名字,自己知道对应哪个网盘就行。我这里用了一个aliyun-01的名字。

百度网盘

如图。看文档进行操作,最后获得刷新令牌即可。不多说,自己试试看。

NVIDIA_Share_NMPK6VX8hp

WebDav网盘

Nextcloud可以通过WebDav挂载。按文档操作。

NVIDIA_Share_fumsGuluFc

关于这个WebDav地址我在博文《Docker系列 深度使用nextcloud(九) 硬盘挂载》里也讲过了,链接位置在这(以Nextcloud为例;第3步有一个URL):

NVIDIA_Share_v8tc5lB4uP

访客目录

Alist有一个GUEST用户,似乎是不可关闭的。个人建议为访客指定一个不重要的(或你不介意公开的)文件夹。可以在编辑里改属性,包括目录和权限。这里不进一步演示了,挺简单的。如果访客访问https://example.com的话,就会见到你这里设置的目录。修改基本路径很重要,否则访客可以直接查看你所有挂载的硬盘(因为默认路径是/

NVIDIA_Share_YJk6dzwKfC

基于WebDav访问Alist

参考: WebDav | AList Docs (nn.ci)

如前所述,你可以在win10里基于WebDav挂载Alist作为硬盘。Alist的WebDav信息很简单,格式如下:

URL: https://example.com/dav/
Username: admin
Password: XXXXXX

对号入座,更改为自己的设置即可(如果忘记了,可以用docker exec -it alist ./alist admin查看)。然后按《Docker系列 深度使用nextcloud(九) 硬盘挂载》里的方法在win10里挂载Alist。

最后,我展示一下自己win10电脑里挂载的Alist:

explorer_cgIJyxwcUf

有点慢吞吞的,毕竟是挂在国外VPS里,速度慢点也很正常 (~ ̄▽ ̄)~ 凑合用吧!

Internet选项

我发现在自建Alist下载文件时,总会提示不安全。一般来说,自己是不会害自己的,所以这种“安全提示”是多余的;它们可能与使用设备的默认安全等级有关,每个人的电脑可能不太一样。我建议,你可以将自建Alist域名(比如https://alistrn2.hwb0307.com)加到本地电脑的信任域名白名单里。这样,除了某些敏感后缀的文件(比如.reg),一般不再提示安全警告。

对于Win10用户,可以这样操作:

  • 打开控制面板:

NVIDIA_Share_9Cka6ZuS5p

  • 进入Internet选项:

NVIDIA_Share_M73Ofrrk7d

  • 添加域名到信任网站名单。支持正则表达式:

image-20221209080204904

NVIDIA_Share_ufYjjY9VKD

完结,撒花!

小结

Alist是一个挺简单的应用,可以通过Docker安装。好处是你可以一下子将自己杂七杂八的网盘都“聚”在一起管理;坏处是多一层中转,网络连接的延迟会增加;如果你在海外VPS里搭建的Alist,这种感觉会更加明显。不过我个人使用觉得还行。如果你平时使用的文件大小不太大的话,这种方式来管理文件还挺方便的。

有什么问题欢迎评论区留言喽!

参考/扩展阅读

---------------
完结,撒花!如果您点一下广告,可以养活苯苯😍😍😍

版权声明:除特殊说明,博客文章均为Bensz原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。 由于可能会成为AI模型(如chatGPT)的训练样本,本博客禁止将AI自动生成内容作为文章上传(特别声明时除外)。如有需要,请至学习地图系统学习本博客的教程。加Telegram群可获得更多帮助喔! | 博客订阅:RSS | 广告招租:留言板 | 博客VPS |

评论

  1. jd
    Windows Firefox 102.0
    2月前
    2022-12-09 19:27:29

    我去又更新了(/ω\)alist我是放在路由上的。alist真挺好用的

    • 博主
      jd
      iPhone Chrome 108.0.5359.52
      2月前
      2022-12-09 19:30:44

      最近时间松一点,所以晚上有时间写博文,哈哈(♥ω♥ ) ~♪

发送评论 编辑评论


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