【发布时间】:2014-06-29 23:48:14
【问题描述】:
目前提供图片的流程如下:
- 在谷歌云存储上存储图片
- 获取 blob_key:
google.appengine.ext.blobstore.create_gs_key(filename) - 获取网址:
google.appengine.api.images.get_serving_url(blob_key,size=250,secure_url=True)
在检索 blob_key 后删除图像:
- 删除服务网址:
google.appengine.api.images.delete_serving_url(blob_key) - 删除谷歌云存储文件:'cloudstorage.delete(filename)'
问题
问题在于,即使底层图像不再存在于谷歌云存储中,该 url 的服务时间仍不确定。大多数情况下,该 url 在约 24 小时内返回 404,但也看到 1 张图片现在仍在投放(约 2 周)。
对delete_serving_url 呼叫的及时性有何期望?有什么方法可以更快地删除 url?
【问题讨论】:
-
你是否在对象上设置了 Cache-Control 标头?
-
我正在使用 GCS 客户端库函数 (gcs.open) 创建对象 link,但无法指定 Cache-Control。支持吗?
-
我的错误,使用选项为
x-goog-cache-control,而它需要cache-control。然而,当使用cloudstorage.open(filename, 'w',content_type=mimetype,options={'cache-control':'no-cache'})创建文件,然后执行上述过程时,该 url 在 1 小时后仍然有效。想法? -
有人知道解决方法吗?请分享。
标签: google-app-engine google-cloud-storage blobstore