廾匸 廾匸
  • 首页
  • 雨山前
  • 初创
    • 国风
    • 艺术
    • 摄影
    • 设计
  • ovvo社区
    • 数字生活
    • 玩物志趣
    • 读书笔记
  • 片刻
    • 爱听
    • 爱看
    • 爱玩
  • 市集
  • 注册
  • 登录
首页 › ovvo社区 › 开发编程 › 自建阿里云盘分享盘

自建阿里云盘分享盘

廾
10月前开发编程阅读 2,351

阿里云盘

阿里云盘是一款速度快、不打扰、够安全、易于分享的网盘,你可以在这里存储、管理和探索内容,尽情打造丰富的数字世界。

简介

AList是一款阿里云盘的目录文件列表程序,后端基于golang最好的http框架gin,前端使用vue和ant design。

支持的功能

  • 自动刷新token,refresh_token自动更新。
  • 图片、视频、音频预览
  • 目录加密
  • Readme渲染
  • 自定义根目录
  • 文件直链下载
  • …

项目地址

https://github.com/Xhofe/alist

https://github.com/Xhofe/alist-web

更新

  • 2021.5.1
  • 在线预览视频时间延长到4小时 (#96)
  • 指定路径与深度rebuild
  • 优化请求:分次请求
  • 增加右键菜单
  • 支持多选、导出直链/秒传(需要rebuild,借助https://bbs.tampermonkey.net.cn/thread-427-1-1.html)
  • 直链编码

演示

NOVBOX

快速开始

这里以Centos X64为例,你可以在 Centos使用指南 中按教程安装宝塔面板及常用运行环境。

自建阿里云盘分享盘-廾匸

通过宝塔面板安装NGINX环境

自建阿里云盘分享盘-廾匸

获取 refresh_token

web端token已失效,登录阿里云盘APP后通过手机端抓包/查找日志(「/data/media/0/Android/data/com.alicloud.databox/files/logs/trace/」)来获取「refresh_token」。

自建阿里云盘分享盘-廾匸

部署

使用gin作为静态资源服务器

前往AList Release下载对应系统的程序,解压得到一个示例配置文件和一个系统名称文件夹里面包含运行文件alist。

自建阿里云盘分享盘-廾匸

通过uname -a 或 arch 命令可以查看系统信息,选择适合的压缩文件。

自建阿里云盘分享盘-廾匸

远程下载并解压。

自建阿里云盘分享盘-廾匸

前往AList-web下载打包好的前端,解压得到一个dist目录放到alist同级目录下

自建阿里云盘分享盘-廾匸

在同级目录下新建一个配置文件conf.yml,复制以下内容到该文件中,或直接使用示例配置文件进行修改

  title: AList #标题
  logo: "" #网站logo 如果填写,则会替换掉默认的
  footer_text: Xhofe's Blog #网页底部文字
  footer_url: https://www.nn.ci #网页底部文字链接
  music_img: https://img.xhofe.top/2020/12/19/0f8b57866bdb5.gif #预览音乐文件时的图片
  check_update: true #前端是否显示更新
  script: #自定义脚本,可以是脚本的链接,也可以直接是脚本内容
  autoplay: true #视频是否自动播放
  preview:
    text: [txt,htm,html,xml,java,properties,sql,js,md,json,conf,ini,vue,php,py,bat,gitignore,yml,go,sh,c,cpp,h,hpp] #要预览的文本文件的后缀,可以自行添加
server:
  address: "0.0.0.0"
  port: "5244"
  search: true
  static: dist
  site_url: '*'
  password: password #用于重建目录
ali_drive:
  api_url: https://api.aliyundrive.com/v2
  max_files_count: 3000
  drives:
  - refresh_token: xxx #refresh_token
    root_folder: root #根目录的file_id
    name: drive0 #盘名,多个盘不可重复,这里只是示例,不是一定要叫这个名字,可随意修改
    password: pass #该盘密码,空('')则不设密码,修改需要重建生效
    hide: false #是否在主页隐藏该盘,不可全部隐藏,至少暴露一个
  - refresh_token: xxx #只有一个盘的话,该段完全可以删除,反之有更多可以继续添加
    root_folder: root
    name: drive1
    password: pass
    hide: false
database:
  type: sqlite3
  dBFile: alist.db

填入最开始获取到的refresh_token,然后自行修改配置文件中默认的值

自建阿里云盘分享盘-廾匸

现在默认是显示云盘内所有文件,如果要设置云盘内的指定文件夹为根目录的话需要修改配置文件中的ali_drive.root_folder 为想要设置的文件夹的file_id即可。

文件夹的file_id是什么?根目录就是root,其他目录为点进文件夹之后的url中folder/后面那一串

自建阿里云盘分享盘-廾匸
自建阿里云盘分享盘-廾匸

现在的情况应该是,目录下有两个文件alist、conf.yml和一个文件夹dist:

.
├── alist
├── conf.yml
└── dist
    ├── favicon.ico
    ├── index.html
    └── static
        ├── css
        │   ├── about.f0b54b1c.css
        │   ├── app.4f0c3e9a.css
        │   └── chunk-vendors.8f913079.css
        ├── img
        │   └── alist.bcb68ba0.png
        └── js
            ├── about.8108f65b.js
            ├── app.34cb39e5.js
            └── chunk-vendors.131f0f41.js
 
5 directories, 12 files

启动程序

在该文件夹下面执行下面的命令(Linux)

chmod +x alist
nohup ./alist > log.log 2>&1 &
自建阿里云盘分享盘-廾匸

正常的话程序已经跑起来了。你可以cat log.log看看有没有报错。

如果cat log.log显示

nohup: ignoring input
./alist: ./alist: cannot execute binary file

则说明AList Release下载对应系统的程序不正确,重新下载对应的程序即可。

首次配置

访问http://ip:5244访问目录(注意放行端口)。

自建阿里云盘分享盘-廾匸

第一次访问需要点击底部的ReBuild输入重建目录密码重建目录,然后就正常显示目录了。

自建阿里云盘分享盘-廾匸

守护进程(可选)

vim /usr/lib/systemd/system/alist.service添加以下内容,其中path_alist为alist所在的路径

[Unit]
Description=alist
After=network.target
 
[Service]
Type=simple
WorkingDirectory=path_alist
ExecStart=path_alist/alist -conf conf.yml
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

然后systemctl daemon-reload重载配置,现在你就可以使用这些命令来管理程序了:

启动: systemctl start alist
关闭: systemctl stop alist
自启: systemctl enable alist
状态: systemctl status alist

使用mysql(可选)

需要使用utf8mb4编码,修改database部分配置:

database:
  type: mysql
  user: 用户名
  password: 密码
  host: 127.0.0.1
  port: 3306
  name: 数据库名

自定义静态资源服务器

与使用gin作为静态资源服务器操作步骤差不多,不同的地方在于:

下载AList-web的源码,修改.env.production中的VUE_APP_API_URL为具体部署的后端地址,然后yarn && yarn build自行部署

conf.yml中的server.site_url填写前端部署的域名或者默认为'*',需要正确填写,否则会报错。

建议直接使用gin作为静态资源服务器,使用nginx的话因为路由使用了history模式(没有#号好看一点),所以还需要设置一下nginx:

nginx:
location / {
  try_files $uri $uri/ /index.html;
}

参考:https://router.vuejs.org/zh/guide/essentials/history-mode.html

反向代理(通过域名访问)

程序默认监听5244端口,要实现https访问,需要使用nginx反向代理,在配置文件中加入或宝塔反向代理

   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_redirect off;
        proxy_pass http://127.0.0.1:5244;
    }

宝塔面板:新建站点-域名解析-添加反向代理(http://127.0.0.1:5244)即可,有必要还可开启HTTPS

自建阿里云盘分享盘-廾匸

常见问题解答

如何给文件夹设置密码?

  • 在要加密的目录名称后面加上.password-密码,列表中会自动消除后面的密码部分。

如何隐藏文件夹

  • 在要隐藏的文件夹名称后面加上.hide即可。

如何重建目录树

  • 点击网页底部的rebuild按钮,输入配置文件中设置的server.password确定即可。

如何设置根目录?

  • 修改配置文件中的ali_drive.root_folder 为想要设置的文件夹的file_id即可。文件夹的file_id是什么?根目录就是root,其他目录为点进文件夹之后的url中folder/后面那一串

如何自定义网页底部链接?

  • 修改配置文件中的footer_text和footer_url为要设置的内容,或者不填则不会显示。

怎么复制文件直链?

  • 点进文件,右上角有复制直链的按钮。

修改网站icon?

  • 替换掉dist目录下的favicon.ico即可。

为什么新上传的文件不显示/删除了的文件还在?

  • 列表展示的是本地数据库里的数据,更新文件之后需要重建。

如何更新?

  • 前端:下载新的打包好的文件,删掉原来的dist文件夹,解压新的dist放入原来的位置即可。后端:pkill alist 停掉老的进程,删除旧的alist,下载新的alist,查看配置文件,补上新的配置项,再次运行即可。

运行显示检查更新之后直接报错?

  • 可能是无法访问到GitHub的api,可以在命令行后面加上-skip-update跳过检查更新。

更多

我们推出了阿里云分享盘的代部署服务,只需要填写几个表单即可拥有一个阿里云共享盘。

阿里云盘-实现分享功能

开发编程
赞(0) 收藏(0)
Navidrome:可能是更好的音乐流媒体服务器
上一篇
令人心动的数据可视化图表,带你探索数据的世界
下一篇
再想想
所有评论(2)
  • 阿加西

    问卷填不了啊 能私发一下吗

    10月前 回复
    • ov-vo

      @阿加西: 你可以在www.novbox.cn 添加群聊

      10月前 回复
2021110216413330
2021110216413052
2021110216412591
previous arrow
next arrow
  • Typodarium 字体设计
    Typodarium 字体设计
    ¥109.00
    加入购物车
  • 豆瓣读书便签贴纸——阅读者系列
    豆瓣读书便签贴纸——阅读者系列
    ¥9.90 – ¥59.00
    选择选项
聚合文章
阿里云盘的webdav协议开源实现(Centos+Docker)
为非技术人群准备的 Python 安装指南
挑一本好看的 2022 年日历,迎接充满希望的虎年
基于Notion的知识库架构
购物车
暂无热门动态

关于我们   用户协议  成为作者

为非技术人群准备的 Python 安装指南
廾
273 0 0
基于Notion的知识库架构
廾
222 0 0
毕业季,送你一份论文格式调整指南
廾
623 0 1
Navidrome:可能是更好的音乐流媒体服务器
廾
1,008 1 0
2
  • 0
  • 2
Copyright © 2021-2022 廾匸. Designed by nicetheme.
京公网安备11010502007133号 京ICP备09043258号
  • 首页
    • 雨山前
    • 精选
    • 主页
  • ovvo社区
    • 数字生活
    • 玩物志趣
    • 读书笔记
  • 初创
    • 国风
    • 摄影
    • 艺术
    • 设计
  • 片刻
    • 爱听
    • 爱玩
    • 爱看
  • 市集
    • 市集
    • 购物车
    • 订单
# 读书笔记 # # 设计 # # 开发编程 # # 数字生活 # # 爱看 #
廾
28
文章
2
评论
41
喜欢