前言
其实很多用户都知道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 的设置,更进阶的比如说控制多用户访问,给不同的用户设置目录的访问管理权限,修改网站标题等,大家就自行摸索即可。