Starter 应用

私有存储上传

通过策略、套餐、配额、校验和与持久删除控制配置 S3 兼容私有上传。

已与启动模板提交 7d452a6 同步。

STORAGE_PROVIDER 设为 s3r2minio,配置 bucket、region、endpoint 与凭据。对象保持私有,浏览器只获得短期预签名 URL。为 Web 来源和必要 PUT header 配置 CORS,除非供应商要求,否则不要启用 ACL。

上传契约

  1. POST /api/storage/uploads 检查组织成员、storage.upload entitlement、策略(generalimagesdocumentsverified)、类型,以及套餐/环境/策略三者中最小的大小上限,并原子预留组织配额。
  2. 浏览器直接 PUT 到对象存储;上传器仅为显示进度而使用 XHR。
  3. POST /api/storage/uploads/complete 校验对象元数据和可选 SHA-256,再激活记录。
  4. GET /api/storage/files/[uuid]?download=1 返回按组织限定的签名下载 URL。
  5. DELETE /api/storage/files/[uuid] 软删除并安排持久 storage_object_delete 任务。

未完成上传一小时后释放预留。删除由任务队列重试,因此 cron 必须运行。对象 key 由服务生成,不能接受客户端自选 bucket key。

上线前测试完整流程、错误 MIME/checksum、配额竞争、过期 URL、跨组织访问、删除重试与清理。供应商 CORS 细节见模板 docs/storage-providers.md

On this page

私有存储上传 · Sushi SaaS