【发布时间】:2019-01-24 05:22:40
【问题描述】:
使用 GCS python 客户端,删除 blob 不会引发任何异常。但是对刚刚删除的 URI 执行 GET 仍然会返回资源。以下代码是单个文件 Flask 应用程序的一部分。
from google.cloud import storage as gstorage
storage_client = gstorage.Client()
storage_bucket = storage_client.get_bucket(app.config['STORAGE_BUCKET'])
@bp.route('/verify', methods=['POST'])
def post_verification_photo():
...
crs.execute('SELECT uri FROM photo WHERE id=%s', (photoId,))
photoUri = crs.fetchone()[0]
storage_bucket.delete_blob(photoUri[photoUri.rindex('/')+1:])
请注意,该对象是使用 Cache-Control: public, max-age=9999999 标头创建的,并且在元数据中公开且不可恢复。
执行后没有报错,但是GET到bucket URI前缀的full URI还是返回了object。我对这些方法的实际使用感到困惑吗?或者 API 是否需要一些时间才能将其从网络中删除?或者,别的什么?
【问题讨论】:
标签: python google-cloud-storage google-cloud-python