集成与运维
对象存储、邮件与第三方集成
配置 R2 和 Resend,并按现有适配层扩展外部服务。
对象存储
项目使用 S3 兼容接口访问 Cloudflare R2,不依赖 Worker R2 binding。功能 API 在 src/features/storage,provider 适配在 src/integrations/storage。
配置桶名、Region、Endpoint、Access Key 和 Secret Key。桶名是公开构建配置,访问凭据是 Secret。上传接口负责会话、文件类型、尺寸与参数校验,不能把不受控的外部地址直接交给服务端下载。
平台图片同样依赖可用存储,但访问受图片历史所有权控制;头像与平台 AI 图片的公开范围不能混用。
邮件
邮件模块位于 src/integrations/mail,使用 Resend。配置 RESEND_API_KEY;订阅邮件能力还需相应 Audience 配置。发件人和联系地址在 src/config/index.ts。
认证邮件依赖正确站点 URL,生产发布前检查发件域、验证链接和重置链接。缺少订阅配置时不能把“已订阅”当成实际发送成功。
支付与统计
支付配置在 src/integrations/payment 与 src/config/index.ts;实际 webhook 位于 /api/webhooks/creem 等入口。新增 provider 沿用适配层,不在页面直接写供应商请求。
数据分析配置按 Google Analytics、Umami、Plausible 等对应变量启用。避免将简历正文、模型密钥或完整 AI 输入作为统计属性。
验证与入口
pnpm check:storage该检查包含存储边界扫描与相关 Node 测试。邮件相关测试位于 src/test/mail,部署 Secret 见Cloudflare 部署。