1

我想使用谷歌云 CDN 为我的客户托管图像。我无法事先发现并上传所有图像,我的客户可能会请求尚未存储在 CDN 上的图像。

如何向谷歌云 CDN 添加代码,以便如果资产尚不存在,我可以在发送 HTTP 响应之前生成它,从而不返回 404 ?

我最好的选择是使用谷歌云功能,但这似乎是不可能的(我没有看到链接到谷歌云 CDN 的触发器)。

4

1 回答 1

2

我认为 Google Cloud Functions 和 Google Cloud CDN 之间没有任何此类集成。

但是,Cloud Functions 和 Firebase 托管之间存在集成,正好适合您的用例类型。由于 Firebase 托管还使用边缘缓存的 CDN,因此结果将是相同的。

流程大致是:

  1. 客户端请求一个 URL。
  2. 请求到达最近的 CDN 边缘。
  3. 边缘没有 URL 的数据,因此从源服务器请求它。
  4. 在源服务器上,您的 Cloud Functions 代码会生成一个响应,其中包含关于该响应有效时长的缓存标头。
  5. 响应存储在 CDN 边缘。
  6. 响应从 CDN 边缘发送到客户端。

并且任何未来在同一边缘上对同一 URL 的调用现在都将跳过步骤 3-5。

有关这方面的更多信息,请参阅有关连接到 Cloud Functions 的 Firebase 托管文档

于 2018-07-03T13:52:11.950 回答