2017-05-08 126 views
2

任何人都知道为什么firebase存储与firebase托管相比会变得如此荒谬缓慢?Firebase存储与Firebase托管相比非常缓慢

结果

  • 时间下载火力托管的形象:16ms
  • 时间从火力存储下载相同的图像:2.23s (2.22s is TTFB)
  • 时间从火力存储下载相同的图像(亚太地区):1.72s (1.70s is TTFB)
  • (文件大小:22.7kb/jpeg/firebase存储已经对所有人开放)

这在测试中反复重复。有没有什么办法可以让这个速度加快到一个比较合适的时间,或者是对于小文件(图像/大拇指)来说Firebase存储是不可用的?

对于比较

  • S3北加州 - 约500ms
  • S3亚太 - 大约30ms
  • Cloudinary - 大约20ms

额外的信息:

  • 我住在澳大利亚。
  • 完全相同的文件。总是在100kb以下的图像。
  • 根据开发工具,速度总是在TTFB中。
  • 托管网址:https://.firebaseapp.com/images/thumb.jpg
  • 存储网址:https://firebasestorage.googleapis.com/v0/b/ .appspot.com的/ O/thumb.jpg ALT =媒体&令牌=
+0

因此,目前真的没有选择使用firebase存储照片合理的下载时间?它比从我的ftp服务器获取照片慢10倍左右(每年10美元)。很难相信像Firebase这样的大型服务存在这样的问题。我发现在这里https://console.cloud.google.com/storage/browser/我可以将每张照片设置为公共链接,然后从该公共链接获取照片的速度非常快(大约50ms)。所以现在的问题是:有没有办法让每张上传的照片都公开? –

回答

2

Hosting = Storage + CDN,所以你看到的是你打到你附近的CDN,而不是直接进入GCS或S3存储桶。 Cloudinary/Imgix也是如此。这就是为什么托管性能比存储更好的原因。

解决AWS和GCP之间TTFB问题如此不同的问题:不幸的是,这是一个已知的GCS vs S3问题(请参见this great blog post(附带深度性能分析))。我知道这个团队正在努力解决这个问题,但是“将CDN放在它前面”路线将提供更快的解决方案(前提是您不需要限制访问,或者您的CDN可以授权请求)。

注意:GCP已宣布将于2017年推出的悉尼地区(announcement blog post),这可能对您有所帮助。

+0

谢谢迈克。我结束了快速放在我的存储桶前。 将CDN/Fastly作为付费插件以节省麻烦真是太棒了! –

4

我找到了解决方案。

如果你有你的文件已经上传到存储去:https://console.cloud.google.com/storage/browser?project=your_project>挑你的桶>选择所有有趣的文件,然后单击公开(或类似的东西 - 我不是英国本地人)。

要在默认情况下,您需要安装谷歌云SDK(https://cloud.google.com/sdk/docs/)公众和你的命令行使用以下命令为你的水桶所有新上传的文件:

gsutil defacl set public-read gs://your_bucket

我所有的电流后并且可以在此处找到新图像storage.googleapis.com/my_project.appspot.com/img/image_name.jpg 下载时间明显缩短。

+0

感谢您给我这个提示! –