GAE在调用delete_serving_url并删除文件后仍然从谷歌云存储中提供图像

时间:2014-06-29 23:48:15

标签: google-app-engine google-cloud-storage blobstore

目前提供图像的程序如下:

  1. 将图像存储在Google云端存储
  2. 获取blob_key:google.appengine.ext.blobstore.create_gs_key(filename)
  3. 获取网址:google.appengine.api.images.get_serving_url(blob_key,size=250,secure_url=True)
  4. 在检索blob_key后删除图像:

    1. 删除服务网址: google.appengine.api.images.delete_serving_url(blob_key)
    2. 删除Google云端存储文件:'cloudstorage.delete(filename)'

    3. 问题

      问题是网址仍然服务了不确定的时间,即使谷歌云存储上不存在基础图像。大多数情况下,url在~24小时内返回404,但也看到1张图像仍在服务(~2wks)。

      delete_serving_url电话的及时性有何期待?删除网址的任何替代方法都会更快?

1 个答案:

答案 0 :(得分:0)

我可以解决你的两个问题之一。不幸的是,它不那么有用。 :/

  

对于delete_serving_url调用的及时性有什么期望?

查看getServingUrl的Java文档,正如您所观察到的那样,他们明确表示需要24小时。我不确定为什么Python文档会忽略这一点。

  

如果您希望停止提供URL,请删除基础blob密钥。这需要长达24小时才能生效。

该文档没有解释为什么您的一张图片在2周后仍会投放。

值得注意的是,他们没有引用deleteServingUrl作为停止提供blob的过程的一部分。这告诉我,你的过程中“删除图像”的步骤(1)是不必要的。

相关问题