• 软件推荐:AList


    软件推荐:AList

    AList是一个开源Web服务,可以添加多种网盘,将你的多个网盘应用集成到一个统一应用中使用,并且还支持通过WebDAV服务映射到操作系统本地目录使用。

    GitHub:https://github.com/alist-org/alist

    安装

    Linux

    从https://github.com/alist-org/alist/releases获取安装包。

    安装包中的应用被打包成一个文件,所以只要解包后部署到相应安装目录即可。

    推荐用/opt/alist_home作为目标安装目录。

    tar -zxvf alist-linux-amd64.tar.gz
    cd /opt
    sudo mkdir alist_home
    cd alist_home/
    cp -r ~/下载/alist ./
    
    • 1
    • 2
    • 3
    • 4
    • 5

    要验证是否安装成功,可以执行sudo ./alist server命令启动应用,如果成功就可以看到服务的端口号。

    要方便使用,最好添加为systemd的服务:

    cd /etc/systemd/system
    sudo vim alist.service
    
    • 1
    • 2

    alist.service的内容为:

    [Unit]
    Description=alist
    After=network.target
     
    [Service]
    Type=simple
    WorkingDirectory=/opt/alist_home
    ExecStart=/opt/alist_home/alist server
    Restart=on-failure
     
    [Install]
    WantedBy=multi-user.target
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    然后就可以通过systemd来让服务开机自启动和启动服务:

    sudo systemctl enable alist
    sudo systemctl start alist
    systemctl status alist
    
    • 1
    • 2
    • 3

    现在通过端口可以访问服务:

    http://localhost:5244/@login
    
    • 1

    image-20221104114418007

    如果不知道端口号,可以通过以下命令获取:

    icexmoon@icexmoon-ubuntu:~/文档$ sudo netstat -tulp| grep alist
    tcp6       0      0 [::]:5244               [::]:*                  LISTEN      12819/alist
    
    • 1
    • 2

    可以通过./alist admin命令获取帐号和密码:

    icexmoon@icexmoon-ubuntu:/opt/alist_home$ sudo ./alist admin
    INFO[2022-11-04 11:46:44] reading config file: data/config.json        
    INFO[2022-11-04 11:46:44] load config from env with prefix: ALIST_     
    INFO[2022-11-04 11:46:44] init logrus...                               
    INFO[2022-11-04 11:46:44] admin user's info: 
    username: admin
    password: xxxxxxx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    VPS

    一开始我就是单纯地打算在笔记本上装一个,方便使用阿里云,但我发现这玩意更大的用途是统一让各种电子设备接入云端,比如之前我一直头疼的是没有一个统一的地方放我的音乐文件,用VPS的话带宽不够,用家里的树莓派又麻烦又要搞外网穿透,无疑AList+VPS是一个不错的解决方案。

    VPS的安装方式参考上边的Linux即可,可能因为具体的Linux发行版的不同稍有不同。

    VPS的方便之处在于我们不用在每个设备上都装一个AList了,我们只需要在VPS上安装一个,所有设备访问VPS上的AList即可。

    具体需要配置VPS上的Web Service,让其将请求的Http服务转发到本地的AList上,方便起见,可以开启一个子域名供AList使用,我这里是alist.icexmoon.cn

    Web Service的配置方式因版本和软件的不同也各不相同,我这里是Apache 2.X,所以以下配置方式也只适合这个版本的Apache。

    先开启HTTP代理相关模块:

    cp ./mods-available/proxy.load ./mods-enabled/
    cp ./mods-available/proxy_http.load ./mods-enabled/
    
    • 1
    • 2

    然后添加AList的相关配置:

    <VirtualHost *:80>
        ServerAdmin icexmoon@qq.com
        ServerName alist.icexmoon.cn
        ServerAlias alist.icexmoon.cn
         <Proxy *>
            Order deny,allow
            Allow from all
        Proxy>
        ProxyRequests Off
        # 转发
        ProxyPass / http://localhost:5244/
        ProxyPassReverse / http://localhost:5244/
    VirtualHost>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    重启Apache后就可以像访问本地一样访问VPS上的AList了。

    Windows

    额,因为我有VPS、树莓派、Linux笔记本,所以实在没有在Windows平台安装AList的需要,所以就没有折腾了,如果你有此类需要,可以自行检索,或者参考官方文档:

    安装倒是没啥,Windows平台的服务管理挺麻烦的,估计需要在服务中添加开机自启,但Windows的服务一直是各种坑爹…

    添加存储

    登录后,新创建的AList是没有任何东西的,我们需要添加网盘到AList后才能使用。

    image-20221104162109572下面以添加阿里云盘为例进行说明。

    相应的官方文档是https://alist.nn.ci/zh/guide/drivers/aliyundrive.html。

    阿里云盘

    要添加阿里云盘,需要获取到两个信息:

    • 阿里云盘用于身份认证的fresh_token
    • 要挂载的阿里云盘目录的ID

    获取fresh_token可以通过以下方式:

    1. 通过web端登录阿里云盘网页:
      image-20221104161452469

      需要注意的是,必须通过帐号密码登录,如果没有设置密码的可以通过手机端设置,扫码登录是不行的。

    2. 通过控制台查看登录时的请求login.doxxx,从响应信息中获取:

    3. 将响应信息中的bizExt进行base64解码,从而获取到其中的fresh_token

      在线解码工具很多,这里我用的是https://www.base64decode.org/

    获取网盘目录ID要简单的多,在Web端打开一个阿里云盘目录,比如:

    https://www.aliyundrive.com/drive/folder/6364c959be6907b4c583403e80966666666
    
    • 1

    folder/后的那串就是目录ID。

    为了挂载简单起见,可以将阿里云中需要挂载的目录都移动到一个目录下,这样就只需要挂载一个目录即可。

    然后就是在AList的管理页面管理>存储中添加阿里云盘,这一步很简单,不做过多说明。

    挂载目录可以命名为中文,比如我的就是/阿里云盘

    一切都搞好后就可以在AList的首页看到挂载的目录,还可以点进去查看文件详情,音乐都可以在线播放,完美!

    除了可以直接播放音乐、查看图片外,PDF和markdown文件也可以直接查看,AList真的好棒,给开发者点赞。

    image-20221104164136220

    安装好后记得在帐号管理中删除或修改guest帐号,默认会有一个guest帐号。

    WebDAV

    通过WebDAV协议可以将AList中管理的网盘映射到本地磁盘。

    这里同样先以Linux为例进行说明。

    Linux

    Ubuntu的资源管理器本身就支持网盘映射:

    image-20221104165321671

    按提示输入DAV服务地址dav://localhost:5244/dav,然后点连接,输入用户名和密码即可。

    现在可以愉快地在本地映射目录中看网盘中的图了。

    image-20221104172603978

    本文就先写到这里了,有空大概会补上Windows的部分,谢谢阅读。

    Android

    安卓设备接入WebDAV可以使用nPlayer,虽然其主要用于播放视频,但也支持查看并下载其他任何类型的文件,所以完全可以当做一个WebDAV的资源管理器用。

    下载安卓版nPlayer可以在酷安的社区中查找。

    音乐播放软件推荐CloudBeats,这是一个国外的云音乐播放器,可以接入WebDAV服务,并将歌曲缓存到本地进行播放,简直完美。唯一的缺点是界面相当古老,也可能是我找到的版本太老,anyway,能用就行,还要啥自行车。

    IOS

    手头没有IOS设备,所以IOS设备接入可以参考:

    Windows

    windows挂载WebDAV相对麻烦一些,需要修改注册表,除此之外也可以通过安装一个软件轻松实现挂载:

    image-20221105190607529

    那个地址默认使用https,如果要修改为http,去除地址后边的勾选即可。此外后边只能填写主域名,后边的路径比如/dav要填写在下边的路径一栏。

    填写后点击连接,输入账号密码即可,然后就能在本地盘符看到挂载的网盘了。

    瞬间有种笔记本多了2个T硬盘的感觉。

    数据库

    光速打脸,回来继续施工,因为改了MySQL是真的香。

    AList默认使用的是SQLite,如果个人使用一般问题不大,不过如果可以的话,建议换成MySQL,速度直接起飞。

    具体方式是先在MySQL中创建一个alist的数据库,然后修改配置信息(安装目录下的/data/config.json):

    {
      # ...
      "database": {
        "type": "mysql",
        "host": "localhost",
        "port": 3306,
        "user": "数据库用户名",
        "password": "数据库密码",
        "name": "数据库名称",
        "db_file": "data/data.db",
        "table_prefix": "x_",
        "ssl_mode": ""
      },
      # ...
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    修改好以后重启AList服务。

    重启后因为换了数据库,所以会恢复成初始状态,所有的配置需要重新改一遍…

    玩法

    AList的功能真的很强大,个人感觉可以有很多玩法,比如弄个匿名可以访问的目录,存放一些Markdown文件,这不就是个极简风的博客嘛,只不过不能回复而已。再比如要分享照片给朋友,开几个帐号给朋友就行,朋友可以自行浏览下载,这不比网盘自带的分享功能好用?再比如可以弄一个共享目录,大家都上传一些资源分享,比如电子书,种子啥的,懂得都懂…

    最后,再次感谢AList的开发者,这真是我好久以来遇到的最喜欢的应用了。

    现在是真的写完了,应该可能大概不会再返工本文了,谢谢阅读。

    参考资料

  • 相关阅读:
    Vue3 setup函数的使用
    gpu cuda 矩阵乘法
    视频监控/安防监控/视频云存储EasyCVR平台设备分配模块升级详解
    ELK 7.17.5 集群部署及使用
    查看、校验、归档… 带你掌握 openGauss 账本数据库
    那些刁钻的名企面试题你会做吗——python100面试题
    Java基础考试题,来测试下自己能拿多少分?提供答案
    Mybatis-Plus用纯注解完成一对多&多对多查询
    集成crawlergo和xray的src漏洞挖掘利器(hscan)
    数据分析——分析方法总结
  • 原文地址:https://blog.csdn.net/hy6533/article/details/127694312