阿里云 FC + Alist Web 实现无服务器部署开源神器 Alist

AI 摘要
文章标题:阿里云 FC 与 Alist Web:无服务器部署 Alist 开源服务的实践与成本分析 摘要: 本文作者记录了使用阿里云函数计算(FC)和 Alist 开源项目在无服务器架构下进行部署的过程。首先,通过在阿里云 OSS 创建存储桶并上传 Alist 的二进制文件,实现后端服务的存储。在阿里云 FC 中创建 Web 函数,配置以 Debian 10 为运行环境,使用 OSS 挂载功能,确保文件访问权限。部署完成后,通过设置 API 地址,前端页面的 index.html 文件被修改以指向云函数的公网地址。 作者提醒,尽管 Alist 提供了便利,但因其基于云函数的计费模式,费用可能会较高,不建议将其作为常规服务器部署。建议混淆 API 地址以保护隐私,并提示读者考虑本地存储和日志服务的计费问题。最后,文章提到了一些部署和安全优化的建议。 适用场景:对于资源有限,追求低成本且需要轻量级文件管理服务的用户,可以考虑此无服务器部署策略,但需注意费用成本和潜在的计费问题。
作词 : q*Left / 苺りなはむ 作曲 : TeddyLoid/Giga えいえいえいえいおーっ!! (诶诶 诶诶 噢 ——!!ヽ (・ω・ゞ)) It’s so easy. のに空回り (it’s so easy 但却白费力气) 合わせて捻じ曲げたり忙しいな (一把抓起折腾玩弄真是忙的不行) え、だっる that ain't it うっうー>< (“诶 好懒~才不是 呜呜 —> <”) いつまで愛想振り撒くの (要一直装可爱到什么时候?) 同じくだり脳内渋滞也 (都是一路货色 大脑成天短路) 教えて darling これで終わり (告诉我 Darling 这就是你的全部?) マヂ黙ってよ ぷんぷんぷん (赶紧闭嘴吧 Pun Pun Pun) てか、マヂ黙ってよ ぷんぷんぷん (是说赶紧闭嘴吧 Pun Pun Pun!) もう!slay slay?もう!slay slay だし?(已经 Slay Slay?已经 Slay Slay 住啦?) てか、マジ黙ってよ ぷんぷんぷん (是说 赶紧闭嘴吧 Pun Pun Pun!) ぶんしゅかぶんしゅか ぶんぶんぶん (えいっ☆) (Pun 咻咔 Pun 咻咔 BoonBoonBoon (诶☆!)) ぶんしゅかぶんしゅか ぶんぶんぶん (えいっ☆) (Pun 咻咔 Pun 咻咔 BoonBoonBoon (诶☆!)) ぶんしゅかぶんしゅか ぶんぶんぶん (Pun 咻咔 Pun 咻咔 BoonBoonBoon) ぷんしゅかぷんしゅか ぷんぷんぷん (Pun 咻咔 Pun 咻咔 Pun Pun PUN!) そっか言い訳ばっかしてたら劣化 (是啊 全是借口慌话 然后才会劣化) やだやだ get dawn だぁ↓ (不要不要 Get dawn 吧↓) oh my god 冷や汗 お前は幸せ (OMG 直冒冷汗 这就叫你的幸福) もう、めそめそしてちゃ~めっ × (真是 可别再哭哭啼啼啦~×) wake up! Let's go dream in. (醒来吧!随我一同入梦) Skill は Attack に全振り (技能点全都梭哈攻击值吧) 世界を相手に勝負し勝ち (全世界当对手 决斗 胜利) あたしがヒロイン so make my world. (我就是主角 So 为我创世) ZONE brrn brrn brrn (独我领域 尽情燃烧) もう slay slay? もう slay slay だし? (已经 Slay Slay?已经 Slay Slay 住啦?) てか、マヂで待ってよ ぶんぶんぶん (是说 稍微等下呀 Pun Pun Pun!) こんなこといいなできたらいいな (这样的事情真好啊 能实现真好啊) あんなとこいいないけたらいいな (那个地方真棒啊 能去的话真棒啊) 夢見心地子供騙し (梦境幻想 不过是骗小孩的把戏) そんな習わし死んだ方がマシ (那样的习惯 还是废了比较好) 一生子供の neverland (一生孩子气的梦幻岛) あたし (あっし) の無双伝 (属于我的无双传) うー!ye ye ye☆ (呜~! 耶耶耶☆) てか、マジ黙ってよ ぷんぷんぷん (是说 赶紧闭嘴吧 Pun Pun Pun!) ぶんしゅかぶんしゅか ぶんぶんぶん (えいっ☆) (Pun 咻咔 Pun 咻咔 BoonBoonBoon (诶☆!)) ぶんしゅかぶんしゅか ぶんぶんぶん (えいっ☆) (Pun 咻咔 Pun 咻咔 BoonBoonBoon (诶☆!)) ぶんしゅかぶんしゅか ぶんぶんぶん (Pun 咻咔 Pun 咻咔 BoonBoonBoon) ぶんしゅかぶんしゅか ぶんぶんぶん (Pun 咻咔 Pun 咻咔 BoonBoonBoon) タッタラランタラランタンタン (哒哒啦 啦哒啦 啦哒哒) タッタラランタラランタンタン (哒哒啦 啦哒啦 啦哒哒) タッタラランタラランタンタン (哒哒啦 啦哒啦 啦哒哒) えいえいえいえいおーっ!! (诶诶 诶诶 噢 ——!!ヽ (・ω・ゞ)) タッタラランタラランタンタン (哒哒啦 啦哒啦 啦哒哒) タッタラランタラランタンタン (哒哒啦 啦哒啦 啦哒哒) タッタラランタラランタンタン (哒哒啦 啦哒啦 啦哒哒) ぶんしゅかぶんしゅか ぶんぶんぶん (Pun 咻咔 Pun 咻咔 Pun Pun PUN!) ぷんしゅかぷんしゅか ぷんぷんぷん (Pun 咻咔 Pun 咻咔 Pun Pun PUN!) ぷんしゅかぷんしゅか ぷんぷんぷん (Pun 咻咔 Pun 咻咔 Pun Pun PUN!)
前言
这个思路是我在 Alist 的 Discussion 里面看到的 传送门
于是花时间研究了下,感觉还行,所以就写一篇文记录一下。
小心吞金兽!
此文仅用于记录一个搭建思路,不建议实际实施(因为费用太贵了)
我之前随便测试了一下就扣我 ¥0.04,不敢想用多了会扣多少钱
还不如去买一个便宜的服务器整,用 FC 太不划算了
关于 Alist
Alist 是一个开源的文件索引和分享服务项目,它允许用户在互联网上建立自己的文件库,方便地进行文件的上传、下载和分享。以下是 Alist 的一些主要特性和功能:
- 简单易用:Alist 的用户界面简洁直观,无论是上传文件、创建文件夹还是设置文件权限,都能快速完成。
- 轻量级:Alist 的代码量非常小,且运行效率高,能在各种硬件设备上流畅运行。
- 文件预览:Alist 支持多种常用文件格式的预览,如文本、图片、音频和视频等,用户无需下载文件即可查看内容。
- 多种存储后端支持:Alist 支持多种云存储服务,如阿里云 OSS、腾讯云 COS 等,用户可以选择最适合自己的存储服务。
- 自定义主题:Alist 支持主题自定义,用户可以根据自己的喜好调整网站的外观。
- 完全开源:Alist 的源代码完全开源,用户可以自由查看、修改,甚至参与到项目的开发中来。
- 支持 WebDAV:Alist 支持所有 WebDAV 存储,WebDAV 是一种用于访问文件的标准协议,用户可以使用 WebDAV 客户端来管理文件。
- 黑暗模式:用户可以根据自己的喜好在明暗模式之间自由切换。
- 受保护的路由:可以为特定的路径添加密码保护和身份验证,增强安全性。
- 文件预览:Alist 支持多种文件格式的预览,包括视频、音频、文档、PDF、图片等,甚至支持 ipa 文件的安装预览。
- 打包下载 / 批量下载:利用浏览器的 stream API 支持打包下载,无需使用服务器,同时支持使用 Aria2 进行批量下载。
- 单点登录:用户可以使用单点登录快速登录 AList。
- 自动注册 AList 账号:通过单点登录,用户可以自动注册成为 AList 账号。
- 离线下载:AList 支持将种子内容离线下载到指定目录,但需要良好的网络环境。
- 保险箱加密 / 解密文件:用户可以安全地将加密数据存储在远程存储提供商上,数据存储在保险箱中,提供商只能看到保险箱而无法查看数据内容。
- 更多新功能:AList 还包括文本编辑器、README/HTML 渲染、文件永久链接、Cloudflare Workers 代理等功能。
Alist 通过其强大的功能和灵活性,为用户提供了一个高效、便捷的文件管理和分享解决方案。用户可以根据自己的需求,将 Alist 部署在本地或云服务器上,实现个性化的文件服务。
以上内容来自 Kimi
Alist 开源地址:AlistGo/alist
官方文档:Alist 文档
官方演示站点:Alist
需要的东西
- 一个已实名的阿里云账号(需要有可用的 OSS 资源包)(用于持久化存储 alist 配置文件)
- 一个 Github 账号
- 一个 Vercel / Netlify / Cloudflare 账号 (看你希望部署在那个平台)
确保你有这些东西之后,然后就可以开始啦。
部署阿里云云函数
首先来部署云函数也就是 Alist 后端。
打开 阿里云 OSS 控制台,新建一个 Bucket 用于存储 Alist 本体
当然如果你想在已有的 Bucket 中放入 Alist 本体文件也行,但是要记得单开一个目录给 Alist 不然文件会很乱
下载最新版 Alist alist-linux-amd64.tar.gz
下载完后解压,将其中的 alist
二进制文件上传至你新建的 Bucket 中即可。
这样文件存储部分就完成了。
然后打开 函数计算控制台,点击左侧的 函数 – 创建函数 后,选择 Web 函数
配置项填写如下:
- 函数名称:随意
- 地域:建议选择香港(如果你要部署到 CF Pages/Vercel/Netlify 的话
- 运行环境:选择 Debian 10
- 代码上传方式:使用示例代码
- 启动命令:更改为
sh start.sh
- 监听端口:更改为
5244
随后点击创建。
创建后,点击配置,进入函数配置界面。然后进入 配置 – 权限 板块,给函数添加一个角色 AliyunFcDefaultRole
记得要给这个角色添加 OSS 的相关权限 策略编辑
然后往下滑,切换到 存储 选项,启用挂载 OSS 存储。
配置项填写如下:
- Bucket:选择你为 Alist 准备的 Bucket
- Bucket 子目录:如果你把 Alist 上传到了根目录就填
/
,上传到其他目录就填对应目录 - OSS 访问地址:默认
- 函数本地目录:填写
/data
- 函数本地目录权限:读写
点击 部署 即可。
这是我的
OSS 挂载完毕之后,回到 代码 栏,进入 WebIDE,新建一个名为 start.sh
的文件,内容为
1 | cd /data |
填写完毕之后一定要记得点那个部署代码
部署代码之后,去 配置 – 触发器 找到你的函数公网访问地址,这在后面会用到
到浏览器访问这个地址,当有一个 .htm
文件被浏览器下载到本地时说明你的 Alist 后端服务已经搭建成功了。
部署 Alist Web
接下来就是部署前端了。
到 Github 下载构建好的前端文件后,解压并修改 index.html
前端文件:dist.zip
找到这一段:
1 | <script> |
将 api
后的 undefined
更改为你之前在云函数找到的公网访问地址,填入即可。
示例:
1 | api: "https://xxxxxxxxxxxxxxxxxx.fcapp.run" |
保存后,选择一个你喜欢的平台将其部署即可,在此就不赘述
好累,不想写了
Some Tips
- 建议把 index.html 混淆一下以免泄露 api 地址,毕竟阿里云函数是按量计费
- 可以试试在 Alist 中添加路径为
/data/xxxxx
的本地存储来实现 Alist 预览 / 修改 OSS 存储文件的效果(? - 不建议启用日志服务,因为日志也是计费的
- 标题: 阿里云 FC + Alist Web 实现无服务器部署开源神器 Alist
- 作者: QiuSYan
- 创建于 : 2024-11-05 17:17:15
- 更新于 : 2025-04-26 21:23:17
- 链接: https://blog.qiusyan.top/posts/12964.html
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。