首先,我将图像存储:
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)
服务 url 通常按预期工作,问题是我没有使用 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. """
问问题
312 次
1 回答
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 中,而将一些数据存储在 Google Cloud Storage 中的情况下使用,但应用程序的其余部分以相同的方式处理数据。(但是,BlobInfo 对象不适用于 Google Cloud Storage 对象。)
所以你应该能够为你的文件生成一个 blobKey 并调用get_serving_url
它delete_serving_url
。
您还可以使用 GCS 对象权限来阻止对文件的访问,请参阅设置对象权限和元数据。
于 2016-08-22T14:32:20.370 回答