如何使用 Firebase 存储实现 CDN?

Ale*_*303 10 google-cloud-storage firebase google-cloud-platform firebase-storage google-cloud-cdn

我目前正在开发适用于 Android 移动设备的社交媒体应用程序,但我在应用程序的成本效率方面存在问题,尤其是使用 Firebase Storage。因此,我想为 Firebase 实现一个 CDN,它可以缓存视频和图像,最好使用提供可扩展定价的 CDN 服务(Google CDN 提供此价格模型)。我一直在到处搜索如何使用 Firebase Storage 实现 google CDN,但没有找到明确的说明。我怎样才能做到这一点?

Ser*_*oza 6

使用 Firebase Cloud Storage 实施 CDN 的方法有多种。

请查看文档Firebase Cloud Storage

Cloud Storage 将您的文件存储在 Google Cloud Storage 存储 桶中,以便可以通过 Firebase 和 Google Cloud 访问它们。这使您可以灵活地通过 Firebase SDK 从移动客户端上传和下载文件,并使用 Google Cloud Platform 进行服务器端处理,例如图像过滤或视频转码。

因此,您可以按照文档使用后端存储桶设置 Cloud CDN 进行操作,但请记住,只有当您通过外部 HTTP(S) 负载均衡器访问数据时,Cloud CDN 才会启动。您可以在@Yanan C提到的更新文章Create a Custom Domain CDN with Google中找到示例。

作为替代方案,您可以使用 Cloudflare 或其他 CDN。为此,您可以按照如何将 CDN 放在 Firebase 云存储前面一文中提供的说明进行操作:

  1. 在 Cloudflare 中创建一个新的 CNAME,将您的子域指向c.storage.googleapis.com. 例如:CNAME images.firerun.io c.storage.googleapis.com
  2. 在 Firebase 控制台 -> 存储中,创建一个名为 subdomain 的新存储桶。在上面的示例中,存储桶名称为“images.firerun.io”。这是一个限制,只有与子域命名相同的存储桶才能工作。
  3. 添加测试文件,例如:keep-calm.jpg
  4. 接下来,授予公众对 Google Console 存储桶的访问权限。请注意,这与 Firebase 安全规则不同,您应该将安全规则设置为允许外部读取:
  5. 转到 Google 控制台中的存储管理。选择您的 Firebase 项目。
  6. 单击您的新存储桶(例如 images.firerun.io),然后单击“权限”选项卡。
  7. 单击“添加成员”按钮。
  8. 输入“新成员”为“allUsers”,角色为“Cloud Storage -> Storage Object Viewer”。
  9. 单击“保存”并接受可公开访问的警告。

现在转到您的子域并附加了文件。例如: https: //images.firerun.io/keep-calm.jpg

另外,请查看文章Why You Should Put a CDN Like Cloudflare in Front of Firebase


小智 1

对于Firebase Storage,我认为要缓存的内容(例如视频和图像)是存储在存储桶中的对象,否则请告诉我。如果是这种情况,该帖子提供了 Firebase 支持部门关于如何将 CDN 与 Firebase Storage 结合使用的答案,摘录如下:

现在,有多种方法可以将 CDN 添加到 Cloud Storage 内容;我使用 Google CDN 找到了这个小指南: https://medium.com/@marco_37432/create-a-custom-domain-cdn-with-google-beta-7ad9531dfbae

我看到的另一个用途是使用 Cloud Storage 创建一个静态网站,并添加另一个 CDN 提供商,例如 CloudFlare。您可以在此链接中查看更多详细信息: https://cloudplatform.googleblog.com/2015/09/push-google-cloud-origin-content-out-to-users.html https://cloud.google.com/互连/文档/操作方法/cdn-互连

希望能帮助到你。