自助友链申请

1931 字
10 分钟
自助友链申请
AI 摘要

存储类型区别优势劣势对比#

存储类型速度收费模式Pages 函数限制核心优势核心劣势适用场景
S3 存储中等免费额度可用不限制函数S3 通用标准,生态工具丰富,免费额度充足,全函数兼容免费超限后计费,无内置数据库权限,鉴权需自行开发静态网站资源、文件备份、跨云存储、通用文件托管
KV 存储极快免费额度可用仅 pages-edge 函数可用内存级低延迟,API 简单,免费额度满足小型缓存,适配边缘函数仅支持主键查询,无法存大文件,普通 Pages 函数无法调用网站缓存、会话存储、计数器、配置文件、边缘临时热点数据
Blob 存储普通免费额度可用支持 pages 任意函数针对二进制大文件优化,全类型 Pages 函数无限制,冷归档低价访问速度一般,不兼容标准 S3,跨云迁移适配差微软云配套业务、视频备份、虚拟机快照、文档附件存储
Supabase 存储最快免费额度可用不限制函数存储 + PostgreSQL 一体化,自带 RLS 行级权限,配套用户认证、向量存储免费项目数量有限,闲置项目会暂停,底层依赖第三方存储全栈 Web/App 快速开发、用户上传素材、AI 向量知识库、小型后端项目
COS 存储最快按量收费,无永久免费不限制函数国内节点多,国内访问速度顶尖,深度集成腾讯 CDN,媒体处理功能完善无免费额度,存储 / 流量 / 请求均收费,海外访问延迟偏高国内小程序 / 网站静态资源、电商图片、短视频素材、企业数据备份

选择存储类型#

这里博主选择的是 Supabase 存储,因为最快免费额度可用不限制函数,符合博主的需求。

配置 Supabase#

  • 进入阿里云云原生数据仓库,左上角选择离你最近的区域。这里我选择的是深圳区域

  • 点击创建项目,选择免费测试创建,点击创建,填写项目名称项目名称需要英文的!输入数据库账号数据库密码

  • 首次创建需要配置专有网络专有网络交换机,若当前区域未创建专有网络,请前往阿里云VPC控制台创建专有网络实例

  • 进入专有网络页面,点击创建专有网络,地域选择需要和刚刚创建项目-可用区一致!填写名称,点击创建,IPv4网段选择手动输入 IPv4 地址段,输入IPv4网段随便选一个,这里我选的是192.168.0.0/16,IPv6网段选择系统分配的 IPv6 地址段

  • 输入交换机名称和可用区选择和刚刚创建项目-可用区一致!这里我选择的是深圳 可用区 F

  • 是否开放白名单限制,这里我选择的是

  • IP 白名单,这里我选择的是0.0.0.0/0!然后点击确定,即可完成配置。

  • 创建好后把修改数据库白名单,添加0.0.0.0/0,即可从任何 IP访问数据库。

登录 Supabase#

  • 点击登录 Dashboard,会弹出登录账号登录密码复制数据库账号数据库密码,即可登录(如果设置了白名单,需要在白名单中添加当前 IP 才能登录)

SQL Editor#

  • 登录后,左侧菜单点击SQL Editor,即可进入 SQL 编辑器,在 SQL 编辑器中执行 SQL 语句
INSERT INTO "public"."friends" (
"id",
"title",
"desc",
"siteUrl",
"imgUrl",
"tags",
"status",
"ip",
"email",
"message",
"updatedAt",
"createdAt",
"weight" -- 新增int4权重字段
) VALUES
(
'64f3b4ef-490d-4440-ad8e-5dc73034ccb9',
'云原生构建',
'会Fork就会CNB',
'https://cnb.cool/',
'https://cnb.cool/cnb/-/logos/s',
'["Blog","Astro"]'::jsonb,
'rejected',
'unknown',
NULL,
NULL,
'1785103334148',
'1784148550477',
0
),
(
'80a0e1dc-7f96-42df-be62-3d0edabc77ac',
'启源',
'技术丶生活',
'https://czxcly.cn/',
'https://personal-biz.czxcly.cn/profile/avatar/2026/05/18/594c922986f34225aa6917bb0b2908ca.jpg',
'["Blog","Astro"]'::jsonb,
'approved',
'129.204.149.174',
NULL,
NULL,
'1785102151599',
'1783301022476',
0
),
(
'8f652adc-0d92-4c53-9e5a-5088048b76e9',
'ZhiJing''s Blog',
'Go with the flow.',
'https://iwexe.top',
'https://iwexe.top/avatar.svg',
'["Blog","Astro"]'::jsonb,
'approved',
'43.139.234.199',
NULL,
NULL,
'1785102152667',
'1783185799746',
0
),
(
'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
'One',
'明心见性,爱自己',
'https://onedayxyy.cn/',
'https://img.onedayxyy.cn/images/Teek/Teekwebsite/xyy-logo.avif',
'["Blog","Astro"]'::jsonb,
'approved',
'unknown',
NULL,
NULL,
'1785102169329',
'1783815691854',
0
),
(
'a56878d9-4649-439d-b16d-abb4fa87ec7f',
'gc的小站',
'综合性小站,希望能帮到你!',
'https://gcweb.cc',
'https://www.gcweb.cc/static/img/pig.jpg',
'["Blog","Astro"]'::jsonb,
'approved',
'223.104.116.184',
NULL,
NULL,
'1785102168900',
'1783462756928',
0
),
(
'b2c3d4e5-f6a7-8901-bcde-f23456789012',
'Hyde',
'人心中的成见是一座大山',
'https://seasir.top/',
'https://seasir.top/_astro/avatar.B2RZ_bo3_JV0dW.webp',
'["Blog","Astro"]'::jsonb,
'approved',
'unknown',
NULL,
NULL,
'1785102168100',
'1783462753394',
0
);

执行后可以在SQL Editor中查看执行的示例数据

前端页面改造#

文件目录:

文件路径作用
src/config/friendsConfig.ts友链配置文件
src/content/spec/friends.mdx友链列表页面自定义内容,已弃用
src/pages/friends/friends.astro友链列表页面组件
src/types/friendsConfig.ts友链配置文件类型定义

相关文件在源码中获取,记得点个Star!将上面的文件替换掉您项目对应文件即可。

部署edgeone边缘函数#

  • 登录进入Edgeone控制台,新增站点-进入站点详情页

  • 在左侧菜单找到函数管理-新建函数,随便选一个模板点击下一步

  • 填写函数名称,这里我选的是创建 Hello World,黏贴函数代码,点击创建并部署等待创建完成,通常10s左右,刷新页面即可完成部署

配置变量#

  • 函数管理-函数详情-环境变量与密钥中,添加以下环境变量
变量名变量值变量类型变量描述获取方式
SUPABASE_URLhttps://spb-xxxxxxxx.supabase.opentrust.netstringSupabase URLSupabase控制台左上角-Connect-App Frameworks获取
SUPABASE_KEYeyJ0exxxxxxx.xxxxxxxxxxxxxx.xxxxxxxxxxstringSupabase KeySupabase控制台左上角-Connect-App Frameworks获取
ADMIN_USERadminstring登录admin后台用户名自定义设置
ADMIN_PASSadminstring登录admin后台密码自定义设置
PUSH_SWITCHonstring是否开启推送通知用于开启或关闭推送通知功能
PUSH_PLATFORMfeishustring推送平台例如:feishudingtalk
PUSH_TOKENhttps://open.feishu.cn/open-apis/bot/v2/hook/xxxstring飞书/钉钉webhook推送token地址飞书钉钉webhook地址获取
PUSH_SECRETSEC9xxxxxxxxxxstring钉钉平台加签密钥钉钉加签获取

填写完成后,一定要点击部署按钮,否则环境变量不会生效

配置域名#

配置主域名(推荐)#

  • 进入edgeone控制台,点击makers找到您部署的 Firefly的项目,进入项目设置-域名管理-添加自定义域名,填写您的二级域名,例如:firefly.seasir.top,填写后去您的域名平台填写canme解析,申请免费证书,等待部署证书生效

  • 进入服务总览-网站安全加速-进入您的站点,找到域名服务-域名管理,点击添加域名

然后域名平台填写canme解析,申请免费证书,等待部署证书生效

配置二级域名(2选1)#

  • 进入主站-域名管理-添加域名

  • 填写二级域名,例如:api.seasir.top

  • IP/域名填写边缘函数部署生成的默认访问域名,例如:friends-zone-3du2b1i5fnma-1312627337.eo-edgefunctions.com

  • 推荐模板选择不使用模板,点击下一步

  • 去您域名后台管理平台解析canme类型的域名,申请免费证书,等待部署证书生效

配置函数触发规则#

  • 函数管理-函数详情-新增触发规则中,添加以下触发规则

触发条件:

匹配类型运算符
HOST等于seasir.top (选择你配置的域名)
URL path等于/api*

执行函数:

执行方式执行函数
执行指定函数friends-zone-3du2b1i5fnma-1312627337

函数触发规则
函数触发规则

配置后端请求地址#

路径:src/pages/friends.astro

  • 搜索seasir.top替换您上面配置好的二级域名,有两处要替换

访问后台#

  • 访问https://你的域名/api/admin,登录后即可查看友友链审核管理后台页面

  • 登录用户名密码:您环境变量中的ADMIN_USERADMIN_PASS里面的值,变量值中就是您后台的账号和密码

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
自助友链申请
https://seasir.top/posts/friends-apply/
作者
Hyde
发布于
2026-07-27
许可协议
CC BY-NC-SA 4.0
相关文章智能推荐
1
AI 摘要实现
Firefly最近给博客折腾了个 AI 摘要功能,效果挺有意思。今天就把我在 Firefly 项目里摸爬滚打总结的实战经验全盘托出。从挑大模型、写构建脚本到搞定打字机动画,顺便分享几个我踩过的坑,希望能帮想给博客加 AI 元素的你少走点弯路。
2
集成朋友圈与笔记本功能
Firefly最近折腾博客,参考大佬方案把朋友圈和笔记本功能安排上了。这篇算是我的实操复盘,补充了不少配置细节。从前端组件到后台管理,一步步带你用 GitHub Gist 零成本搞定这两个模块,想给博客加点料的朋友直接来抄作业啦。
3
隐藏封面图
Firefly最近在折腾博客的封面图显示逻辑,加了个「隐藏封面图」的开关功能——从类型定义、配置项、工具函数到 UI 控件和样式,一步步把整个流程补全了。代码分散在多个文件里,但核心就一件事:让用户能一键收起或展开文章封面,既保持页面简洁,又不丢失视觉层次。顺手还做了多语言支持,中文、英文切换也一起配上了。
4
归档统计
Firefly最近在折腾博客的归档统计功能,从获取归档列表开始,一路写到更新内容的工具函数、类型定义,再到多语言配置的拆分与管理——每一处改动都为了让归档页更清晰、更易维护,也顺便理清了自己代码里的逻辑脉络。
5
给博客增加单个和全部分类页面
Firefly最近给博客加了个小功能:点击分类名就能跳转到该分类下的所有文章,还能一键查看全部分类列表——整个过程其实挺顺的,从创建页面、写 URL 工具函数,到更新导航栏和多语言支持,一步步配下来,连分类链接都自动带上了本地化路径,现在逛自己博客像逛图书馆一样清爽 😄
随机文章随机推荐

评论区

Profile Image of the Author
Hyde
Hello, I'm Hyde.
📢 欢迎来访者
👋🏻 Hi,我是Hyde,欢迎您!
分类
标签
最新动态
站点统计
文章
12
分类
2
标签
5
总字数
8,691
运行时长
0
最后活动
0 天前
站点信息
构建平台
EdgeOne
博客版本
Firefly v6.15.3
文章许可
CC BY-NC-SA 4.0
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
--
--%
本年还剩 -- 天
--%
本月还剩 -- 天
--%
本周还剩 -- 天
--%
今日还剩 -- 小时

距离 --

--

--

我和宝宝在一起已经
---------TSH❤️CXY---------
---------TSH
❤️
CXY---------
0000000
✨ 今日一言
"未经过审视的人生是不值得过的。"
—— 苏格拉底
天气预报
统计