首先我将图像存储到存储中:
import cloudstorage as gcs
...
path = '/bucket/folder/image.jpg'
with gcs.open(path, 'w') as f:
f.write(data)
然后我得到了服务网址:
url = images.get_serving_url(None, filename='/gs{}'.format(self.path),
secure_url=True)
服务网址通常按预期工作,事情是我没有使用blob_key,只使用文件名(存储路径)。
我想知道现在如何删除serving_url,因为sdk方法只接受blob_key
def delete_serving_url(blob_key, rpc=None):
"""Delete a serving url that was created for a blob_key using get_serving_url.
Args:
blob_key: BlobKey, BlobInfo, str, or unicode representation of BlobKey of
blob that has an existing URL to delete.
rpc: Optional UserRPC object.
Raises:
BlobKeyRequiredError: when no blobkey was specified.
InvalidBlobKeyError: the blob_key supplied was invalid.
Error: There was a generic error deleting the serving url.
"""
答案 0 :(得分:3)
Using the Blobstore API with Google Cloud Storage示例显示了如何为GCS获取等效的blob_key:
blob_key = CreateFile(main.BUCKET + '/blobstore_serving_demo')
从该链接:
注意:获得Google Cloud Storage对象的 blobKey 后,您可以传递它,序列化它,否则使用它 可以在任何地方交替使用 blobKey 来存储对象 在Blobstore。这允许在应用程序存储某些数据的情况下使用 blobstore和谷歌云存储中的一些,但处理数据 否则应用程序的其他部分相同。 (但是, BlobInfo 对象不适用于Google云端存储对象。)
因此,您应该能够为您的文件生成blobKey并使用它调用get_serving_url
和delete_serving_url
。
您也可以使用GCS对象提交来阻止访问该文件,请参阅Setting object permissions and metadata。