跳转到内容
搜索文档

存储用户生成内容

最后更新 查看 MarkdownAgent 设置

简介

用户生成内容 (UGC) 是现代应用程序的重要组成部分。这包括用户上传个人照片、文档和视频,以及 AI 模型生成图像、摘要或结构化数据。因此,应用程序需要一个可靠、可扩展且高性价比的解决方案来存储和访问这些内容。

Cloudflare R2 是一个具有零出口费用的 S3 兼容对象存储,非常适合大规模处理内容上传和交付。结合 Cloudflare Workers 和 Cloudflare 全球网络,它为摄取和管理 UGC 提供了快速、安全且高性价比的工作流。

本参考架构探讨了两种常见的 UGC 工作流,两者均针对性能、安全性和成本效率进行了优化:

  1. 通过签名 URL 将用户上传安全存储到 R2: 允许用户高效、安全地上传文件(个人图像、文档等),而不会对后端系统造成过载。
  2. AI 生成内容存储到 R2: 存储由 Workers AI 或外部 AI 服务生成的内容,确保推理结果可持久保存以供将来使用。

使用场景

使用场景 1:通过签名 URL 将用户上传安全存储到 R2

用户生成内容通常从文件上传开始,包括个人照片、简历、富媒体和文档。应用程序必须在避免延迟、高成本和不必要的后端复杂性的同时,安全地验证和存储这些上传内容。

在此架构中,我们使用 R2 作为主要存储层,使用 Worker 控制上传访问权限。文件通过签名 URL 从用户的浏览器或设备直接上传到 R2,签名 URL 由 Worker 在验证用户权限和上传意图后生成。

这种方法避免了通过应用程序后端或 Worker 路由大文件,降低了延迟和运营成本,同时确保对访问和安全性的严格控制。

由于 R2 与 Cloudflare 全球网络原生集成,存储在 R2 中的文件可以从世界任何地方以低延迟访问——而且无需任何出口费用,即使您的应用程序规模扩大也是如此。

使用场景 1:通过签名 URL 将用户上传安全存储到 R2
使用场景 1:通过签名 URL 将用户上传安全存储到 R2

工作原理

  1. 用户从前端发起上传: 应用程序收集文件详情(如大小、名称),并调用后端 API(Cloudflare Worker)以开始上传流程。
  2. Worker 验证用户身份并验证请求: Worker 确认用户已登录、拥有上传权限,且文件在可接受的限制范围内(例如,最大 10MB,允许的 MIME 类型)。
  3. Worker 向 R2 返回签名 PUT URL: 签名 URL 允许前端在有限时间内直接上传到 R2,限定在特定键或命名空间下。Worker 无需直接处理大文件。
  4. 前端直接将文件上传到 R2: 文件从客户端直接流式传输到 R2。
  5. (可选)触发上传后工作流: R2 提供事件通知,在 R2 存储桶中的数据发生变更(如新上传)时向队列发送消息。后处理示例:
    • 扫描、审核或转换文件。
    • 将元数据(例如 user_idfile_pathtimestamp)写入 D1(Cloudflare 的无服务器 SQL 数据库)。
    • 通知用户或更新仪表板/UI。

有关从客户端直接上传数据到 R2 的更多信息,请参阅预签名 URL 文档。

使用场景 2:AI 生成内容存储到 R2

许多现代应用程序利用 AI 生成内容,包括产品描述、个人照片、音频片段等。当这些内容响应用户操作或计划事件而创建时,必须立即、可靠地大规模存储。

此架构采用 Workers AI 在边缘执行推理,然后在单个 Worker 中将生成的输出直接存储到 Cloudflare R2。

使用场景 2:AI 生成内容存储到 R2
使用场景 2:AI 生成内容存储到 R2

工作原理

  1. 用户发起内容生成: 前端向 Cloudflare Worker 发送请求,使用 AI 模型创建内容(例如,"为该产品创建缩略图")。
  2. Worker 调用 Workers AI: Worker 将用户输入传递给部署在 Workers AI 上的模型。
  3. 生成的输出返回给 Worker: 响应可以是纯文本、Base64 图像、二进制缓冲区或其他结构化数据——取决于模型类型。
  4. Worker 直接将输出上传到 R2: 无需签名 URL 或客户端上传。Worker 执行安全的已认证 PUT 请求,将输出存储到指定存储桶。
  5. Worker 向前端返回成功和元数据: 客户端收到对已存储文件的引用(如路径、对象键,或在需要时提供签名下载 URL)。

有关通过 Cloudflare Workers 访问 R2 存储桶的更多信息,请参阅从 Workers 使用 R2

总结

通过将用户生成内容存储在 Cloudflare R2 中,应用程序获得:

  • 高度可扩展的存储后端
  • 通过 Cloudflare 边缘计算实现快速访问
  • 零出口费用带来的可预测成本
  • 最大化效率的无缝 AI + UGC 工作流

此架构确保内容的存储、处理和交付快速、安全且高性价比

相关链接

这篇文档对您有帮助吗?