12

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

4

2 回答 2

4

有几种方法可以使用 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提到的使用 Google 创建自定义域 CDN的更新文章中找到示例。

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

  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. 输入 New Member 作为“allUsers”,输入 Role 作为 Cloud Storage -> Storage Object Viewer”。
  9. 单击“保存”并接受可以公开访问的警告。

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

此外,请查看文章为什么要在 Firebase 前面放置像 Cloudflare 这样的 CDN

于 2020-12-07T10:41:32.990 回答
1

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

现在,有多种方法可以将 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 互连

希望能帮助到你。

于 2020-04-25T03:59:22.497 回答