我目前正在开发适用于Android移动设备的社交媒体应用程序,但我的应用程序(尤其是Firebase Storage)的成本效率存在问题。因此,我想为Firebase实现CDN,该CDN将缓存视频和图像,最好使用提供可伸缩定价的CDN服务(Google CDN提供此价格模型)。我一直在到处搜索如何使用Firebase Storage实施google CDN,但没有找到明确的说明。我该如何实现?
答案 0 :(得分:0)
对于Firebase Storage,我认为要缓存的内容(例如视频和图像)是存储在存储桶中的对象,否则请告知我。在这种情况下,post提供了Firebase支持人员有关如何将CDN与Firebase存储一起使用的答案,摘录如下:
现在,有一些方法可以将CDN添加到云中 存储内容;我使用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
希望有帮助。
答案 1 :(得分:0)
有几种方法可以通过Firebase Cloud Storage实施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文章中提供的说明进行操作:
- 在Cloudflare中创建一个新的CNAME,将您的子域指向
c.storage.googleapis.com
。例如:CNAME images.firerun.io c.storage.googleapis.com
。- 在Firebase控制台->“存储”中,创建一个名为子域的新存储桶。在上面的示例中,存储桶名称为 “ images.firerun.io”。这是限制,其中只有命名为 与子域相同。
- 添加测试文件,例如:keep-calm.jpg
- 接下来,向公众访问Google控制台的存储桶。请注意,这与您应设置的Firebase安全规则不同 允许外部允许的安全规则为:
- 在Google控制台中转到“存储管理”。选择您的Firebase项目。
- 点击新存储区(例如images.firerun.io),然后点击“权限”标签。
- 单击“添加成员”按钮。
- 输入“新成员”作为“ allUsers”,并充当“云存储->存储对象查看器”。
- 单击“保存”并接受警告,此警告可以公开访问。
现在转到附加了文件的子域。例如:https://images.firerun.io/keep-calm.jpg
此外,请浏览文章Why You Should Put a CDN Like Cloudflare in Front of Firebase。