【问题标题】:Using Google storage bucket as on-demand pull CDN使用谷歌存储桶作为按需拉取 CDN
【发布时间】:2015-03-10 10:45:04
【问题描述】:

我正在尝试使用 Google Cloud Storage 存储桶从 GCE 上的网络服务器提供静态文件。我看到in the docs 我必须手动复制文件,但我正在寻找一种方法来按需动态复制文件,就像其他 CDN 服务一样。这可能吗?

【问题讨论】:

  • 您能否澄清您的意思,即您的用例是什么,您遇到什么问题等?您要动态复制哪些文件?它们是动态生成的吗?它们不是(还)存储在 GCS 上吗?另外,您能否编辑您的问题以指向您所指的文档?
  • 我正在尝试复制按需动态生成的静态文件,方法是从我的网络服务器按需请求文件(如果它们尚未在存储桶中)。您要动态复制哪些文件?动态生成的 JS CSS 文件,它们不是(还)存储在 GCS 上吗?没有。

标签: google-cloud-storage google-compute-engine google-cdn


【解决方案1】:

如果您询问 Google Cloud Storage 是否会自动且透明地缓存来自您的网络服务器的频繁访问的内容,那么答案是否定的,您必须自己明确地将文件复制到您的存储桶中。

但是,如果您询问是否可以将文件动态(即以编程方式)复制到您的 GCS 存储桶,而不是手动(例如,通过gsutil 或网络用户界面),那么是的,这是可能的。

我想你会使用类似下面的过程:

# pseudocode, not actual code in any language

HandleRequest(request) {
  gcs_uri = computeGcsUrlForRequest(request)

  if exists(gcs_uri) {
    data = read(gcs_uri)
    return data to user
  } else {
    new_data = computeDynamicData(request)

    # important! serve data to user first, to ensure low latency
    return new_data to user

    storeToGcs(new_data)  # asynchronously, don't block the request
  }
}

如果这符合您的计划,那么有几种方法可以实现,例如,

请注意,为避免无限期地填满您的 Google Cloud Storage 存储桶,您应配置 lifecycle management policy 以在一段时间后自动删除文件或设置其他进程以定期清理您的存储桶。

【讨论】:

  • @gadelkareem 抱歉,我不知道。
猜你喜欢
  • 2020-09-10
  • 2020-07-02
  • 2021-12-23
  • 1970-01-01
  • 2023-02-08
  • 2020-12-31
  • 2020-06-01
  • 2016-01-31
  • 2019-08-24
相关资源
最近更新 更多