Google Cloud Storage/Blobstore 图片服务 URL 的有效期是多长时间?存储成本是否多余?

How long are image serving URLs valid for with Google Cloud Storage/Blobstore? Is the storage cost redundant?

在 Google 的云平台上 URL 没有列出 图像服务 URL 的到期或存储详细信息https://cloud.google.com/appengine/docs/go/images/reference#ServingURL — 这个文档很不清楚。图像是临时存储在 CDN 或其他东西上,还是无限期地存储在项目的 Blobstore 中并且我们要为存储的许多倍数付费?或者,URL 是否会在设定的时间后过期并丢弃该尺寸的图像?

我问这个问题的原因是因为我听说调用这个函数会增加延迟,我想确保尽可能缓存响应,如果是这种情况的话。但是,我需要知道缓存过期点,如果有的话。

如有任何帮助或说明,我们将不胜感激。

定价和缓存

那个描述的好一点here:

You simply store a single copy of your original image in Blobstore, and then request a high-performance per-image URL.

正如 Paul 在他的评论中所说,您只需为 Blobstore 中 1 个原始图像副本的存储 space 支付费用,外加提供服务时的正常带宽费用。当您创建 URL 以不同尺寸提供图像时,它们是否缓存该尺寸的图像副本取决于 Google;无论哪种方式,您仍然只需为原始图像的原始大小支付存储费用。

我看到有报道说 URLs 在删除原始图像后可以工作几天,所以显然 Google 至少有时会做一些缓存,但这些细节没有具体说明并且可能会改变具体情况。

到期

URL 永远不会过期,除非您明确删除它或删除原始图像。

Whether you store your images in Cloud Storage or Blobstore, the right way to stop an image from being publicly accessible through the serving URL is to call the image.DeleteServingURL function.

性能

我无法评论通过提供调整大小的图像副本可以增加多少延迟。我假设答案是 "not enough to care about",但我还是不知道。如果您进行试验并发现增加的延迟不可接受,您可以尝试创建多个版本的图像以自己存储在 Blobstore 中,以它们的自然尺寸提供服务。我不能说这是否真的会提高性能。在这种情况下,您当然会为存储每个副本付费。我建议不要担心,除非你发现它成为一个问题。

Images are served with low latency from a highly optimized, cookieless infrastructure.

所以我怀疑您是否可以通过自己尝试更多优化来获得很多好处。