OSS的网盘之路,最小化实现网盘分享
本文最后更新于 579 天前,其中的信息可能已经有所发展或是发生改变。

前言

其实很多用户都知道OSS是非常适合用于作为网盘、附件系统的底层设施的,但是很多企业用户在沟通的过程中,其实没有很好的系统来支持OSS作为一个网盘去分发一些文件,例如企业像将介绍视频通过微信发布给有购买记录的客户,但是视频比较大也不方便直接通过微信发送视频,也不方便放到B站、优酷等视频平台中。

那么本文就介绍利用最小化资源实现OSS的网盘分享,让 ECS + OSS = 网盘。

AList 介绍

AList 是一款基于 Go 语言开发的轻量级 Web 文件列表程序,支持多样化底层存储如本地文件、对象存储、WebDav和部分网盘等,同时也支持权限管理、访问加密、打包下载、文件预览等功能。

安装

一、配置选择

因为是最小化的网盘功能实现,所以我们按尽可能低的资源消耗来。

最小配置支持:1vCPU + 512M 内存的实例

推荐配置:1vCPU + 1G 内存的实例,当然配置越大肯定越好,不过性价比就不高了。

操作系统: AliyunLinux、Debian、Ubuntu 等主流操作系统都可以,本文使用 AliyunLinux3

二、安装部署

一键安装包(推荐新手)

登录 SSH 后,我们直接运行一键安全脚本即可:

curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install

一般来说很快即可安装完成,完成后访问地址为:

http://你的公网IP:5244/

配置文件路径:/opt/alist/data/config.json
查看后台登录用的管理员信息,请执行:

cd /opt/alist
./alist admin

会提示如下内容:

[root@iZt4n1psgsvkxk53w3ofepZ alist]# ./alist admin
INFO[2022-12-20 21:45:21] reading config file: data/config.json        
INFO[2022-12-20 21:45:21] load config from env with prefix: ALIST_     
INFO[2022-12-20 21:45:21] init logrus...                               
INFO[2022-12-20 21:45:22] admin user's info: 
username: admin
password: zvi3rsxl 

其中的 username 和 password 就是用户名和密码

Docker容器方式

安装完成 Docker 后,安装Docker 教程在 这里 ,运行:

docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:latest

查看后台登录用的管理员信息,请执行:

docker exec -it alist ./alist admin

三、反向代理(可选)

如果我们要让用户用正常的 HTTP(80) 或者 HTTPS(443) 协议访问我们的网盘就需要设置 Nginx 的反向代理到 Alist 的 5244 端口。

方案一: Nginx Proxy Manager

安装教程后面补上,现在讲一下配置方案:

Domain Names :添加需要绑定的域名

Scheme: 填写代理的协议,这里 Alist 用的是 http 协议

Forward Hostname/IP:填写本地IP 127.0.0.1

Forward Port:填写 Alist 端口 5244

如果需要发布 HTTPS ,则可以在 SSL 处上传证书即可。

方案二:自行反代

在宝塔、Appnode 等面板或者自建 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_set_header Range $http_range;
	proxy_set_header If-Range $http_if_range;
  proxy_redirect off;
  proxy_pass http://127.0.0.1:5244;
  # the max size of file to upload
  client_max_body_size 20000m;
}

登录用户

访问我们的 Alist 地址,点击正下方的 登录

然后输入前文中提示的账号密码:

例如我的是:

username:admin
password: zvi3rsxl 

登录完成后,我们回到首页后,继续点击正下方提示 管理 按钮:

添加存储

在管理后台左侧点击 存储 后,点击 添加

然后下拉菜单中选择 对象存储 后,进行配置:

配置项目说明:

挂载路径:在这个ECS上运行的 Alist 的展示的目录

Web 代理:如果 Endpoint 填写的内网IP,这里就要开启 Web 代理,可以用 ECS 的公网带宽来限速 OSS 的下载速度。

根文件夹路径:和挂载路径相反,这里是展示 OSS 中的目录,如果想展示 OSS 中 /list 目录下的文件,那就填写 /list

存储桶:OSS的 Bucket 的名称

Endpoint:OSS的Endpoint,有公网和内网之分,要不限速下载填公网,要限速下载用内网,然后开启Web代理

地区:可以默认不填

访问密钥 Id:RAM 子账户的 AccessKey ID,需要有 OSS 权限

安全访问密钥:对应 AccessKey 的 AccessKey Secret

自定义HOST :如果要开启CDN的话,需要填写,如果不使用则留空

列出对象版本:V2

然后保存即可

文件管理

我们在阿里云的后台控制台向对应OSS的 Bucket 上传文件夹或者文件。有权限的 Alist 账号也可以通过 Alist 的 Webdav 功能上传和管理文件。

然后我们就可以在 Alist 的网站上看到对应的文件。

我们可以直接在浏览器查看 图片、PDF、视频等文件。

总结

通过简单的 Alist 设置,我们就可以实现图形化的方式完成 OSS 的网盘化创建了。本文介绍了 对象存储 OSS 的设置,更进阶的比如说控制多用户访问,给不同的用户设置目录的访问管理权限,修改网站标题等,大家就自行摸索即可。

上一篇
下一篇