AList建站笔记
2023-09-13
用AList搭建的视频托管平台
这两天因为复习压力不是很大,搞了点个人项目。想着有一个可以托管游戏视频的平台估计不错,现在国内的平台要么就是上传速度比较差,要么就是对海外资源不友好,所以试试看吧。
AList的介绍
我选用的平台是AList,从外部的UI看来,它看起来像是一个网页文件管理器,可以帮你管理你的文件。但他最核心的功能其实是帮助你整合你在所有网盘上的资料,甚至是你自己建的服务器上的资料。依赖于高速的网络,你可以实现一种类似NAS的体验。据我所知,传统NAS可以做的事情,AList可以做得更好。
使用的资源
- 前后端:AList,在GitHub上开源的在线多来源文件管理系统。
- 基于Gin(Go语言最快的全功能Web框架)和Solidjs(一个用于构建用户界面,简单高效、性能卓越的JavaScript库)。
- 服务器提供商:Amazon EC2,第一年免费,之后也很便宜,因为本来流量就没有多少。
- 文件存储:百度网盘、Cloudflare R2
依托百度
AList支持了市面上的大多数网盘,百度网盘也是其中之一。其他受支持的网盘可以从其官网的文档中找到。在这部分主要的问题在于配置百度网盘的过程。由于AList的默认端口在win10上是被保留的,所以需要修改端口到其他位置。由于我直接使用了EC2服务器,我设置了80端口来方便访问。
在设置时可以按照下图设置,令牌可以从AList的官方文档中找到获取方法。当你使用百度云盘的时候,请小心进行配置。我建议你在“Metas”中对整个目录设置密码,这样可以防止你的文件被搜索到。也避免了token被泄露的风险。
由于使用百度云托管会产生或多或少的违反用户规章的可能性,可能会导致封号。虽然人数较少的共享的风险几乎为零,但我还探索了使用对象存储(类似于自己建一个服务器来保存数据,并提供上传和下载功能)。
使用Cloudflare R2的对象存储
第二天,我实现了用R2的对象存储服务来帮助我自己建一个在线的网盘,这完全由我自己控制。也可以分发下去给别人权限来上传和下载,这完美的符合了我的期待。
具体的步骤是先创建一个“桶”,然后创建一个令牌来给与你自己或者用户上传和下载的权限。你可以在创建令牌的时候设置令牌的过期时间,我建议你在不必要的时候不要分享或使用拥有管理员权限的令牌。
在AList默认的存储中选择“对象存储”就是可以导入R2的资源,至于资源上传建议使用rclone,特别方便。方便到难以置信,只需要下载并输入
rclone config
即可开始配置,依次输入所需参数即可。你需要输入的参数包括:
- Name:你可以随意填写,例如
r2name
- S3 provider:你应该选择你使用的服务提供商,如果是我的话我选择的是Cloudflare
- AWS credentials:默认选择false即可。
- AWS Access Key ID:你需要在这里粘贴你的access key ID(你的令牌访问ID)
- AWS Secret Access Key:你需要在这里粘贴你的令牌访问密码。
- Region:你需要选择你在R2上自己选择的服务器区域,你可以使用默认的auto,我测试过是没有问题的。
Endpoint for S3 API:你需要在这里粘贴一段包括你的用户ID的网址。具体来说是(如果不知道在哪里找账户ID的话,请参考官方教程)
https://<ACCOUNT_ID>.r2.cloudflarestorage.com
配置好后就可以使用rclone进行上传了,非常方便,具体操作请见rclone官网。
rclone copy file_name.mp4 r2name:bucket_name/folder_1
这一条代码可以帮助你使用配置r2name
将本地目录下的file_name.mp4
上传到云端bucket_name
水桶下的folder_1
文件夹下。
感谢AList的contributor之一的安稳老师为我指了条明路。
现在,你可以使用账号和密码为“cnapex”来访问该网站。
价格/成本
我发现Backblaze B2 和 Wasabi 有更好的价格,之后如果有时间的话会试试看使用这两家的OBS。
B2与CloudFlare合作可以实现0费用下载,所以一个月1T资料的费用为5美元。如果不使用免费CDN下载,则一个月费用为5+5=10美元。而Wasabi则是一个月6.99美元,它的下载是一直免费的。
R2在每个月存储1T资料时,费用约为15美元。