我正在尝试使用Google Cloud Storage存储桶从GCE上的Web服务器提供静态文件。我看到in the docs我必须手动复制文件,但我正在寻找一种像其他CDN服务一样按需动态复制文件的方法。这可能吗?
答案 0 :(得分:0)
如果您在询问Google云端存储是否会自动和透明地从您的网络服务器缓存经常访问的内容,那么答案是否定的,您必须自己明确地将文件复制到您的存储桶中。
但是,如果您询问是否可以动态(即以编程方式)将文件复制到GCS存储桶,而不是手动(例如,通过gsutil
或Web UI),那么是的,这是可能的
我想你会使用类似下面的过程:
# 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云端存储空间,您应配置lifecycle management policy以在一段时间后自动删除文件,或设置其他进程以定期清理存储桶。