【问题标题】:How can i implement a CDN with Firebase Storage?如何使用 Firebase 存储实现 CDN?
【发布时间】:2020-08-08 02:34:16
【问题描述】:

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

【问题讨论】:

  • 由于 Firebase 使用Firebase Hosting 提供了他们自己的 CDN 可能性,也许这是您想要考虑的一种可能性?根据使用 GCP Cloud CDN,我认为只能使用 buckets 并启用 GCP CDN
  • 是的,我看到了,但那是针对网络应用程序的,但我有一个不使用托管的移动应用程序。那么有没有办法为移动设备而不是网络实现它?
  • @Ale4303 我和你在同一个地方。您能否找到一种解决方案来缓存存储在 Firebase Cloud Storage 或 Google CDN 上的 Firebase Storage 上的视频/图像?我们还能确保谁可以观看视频或不使用身份验证吗?
  • 为什么不直接使用免费图片 CDN 为您处理这个问题?容易得多。见:docs.imagekit.io/integration/configure-origin/firebase-storage
  • @redshift 你能推荐一个免费的视频 CDN 吗?

标签: firebase google-cloud-platform google-cloud-storage firebase-storage google-cloud-cdn


【解决方案1】:

有几种方法可以使用 Firebase 云存储实现 CDN。

请查看文档Firebase Cloud Storage

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

因此,您可以遵循文档 Setting up Cloud CDN with a backend bucket,但请记住,只有在您通过外部 HTTP(S) 负载均衡器访问数据时,Cloud CDN 才会启动。您可以在 @Yanan C 提到的更新文章Create a Custom Domain CDN with Google 中找到示例。

作为替代方案,您可以使用 Cloudflare 或其他 CDN。为此,您可以按照文章How to Put a CDN in Front of Firebase Cloud Storage 中提供的说明进行操作:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    我看到的另一个用途是使用 Cloud 创建静态网站 存储和添加另一个 CDN 提供商,如 CloudFlare。你 可以在此链接中查看更多详细信息: https://cloudplatform.googleblog.com/2015/09/push-google-cloud-origin-content-out-to-users.html https://cloud.google.com/interconnect/docs/how-to/cdn-interconnect

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 2017-07-23
      • 1970-01-01
      相关资源
      最近更新 更多