GAE python:如何使用delete_serving_url

时间:2016-08-15 11:12:01

标签: google-app-engine gae-python27

  1. 首先我将图像存储到存储中:

    import cloudstorage as gcs 
    ... 
    path = '/bucket/folder/image.jpg'
    with gcs.open(path, 'w') as f:
        f.write(data)
    
  2. 然后我得到了服务网址:

    url = images.get_serving_url(None, filename='/gs{}'.format(self.path),
                                 secure_url=True)
    

    服务网址通常按预期工作,事情是我没有使用blob_key,只使用文件名(存储路径)。

  3. 我想知道现在如何删除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.
        """
    
  4. https://cloud.google.com/appengine/docs/python/refdocs/google.appengine.api.images#google.appengine.api.images.delete_serving_url

1 个答案:

答案 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_urldelete_serving_url

您也可以使用GCS对象提交来阻止访问该文件,请参阅Setting object permissions and metadata