2016-08-15 88 views
1
  1. 首先使用我把圖像存儲:GAE蟒蛇:如何delete_serving_url

    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. 
        """ 
    

https://cloud.google.com/appengine/docs/python/refdocs/google.appengine.api.images#google.appengine.api.images.delete_serving_url

+0

那麼'delete_serving_url'刪除gcs上的整個文件吧? –

+0

不,我刪除serve_url圖像,所以它不能通過此URL訪問 – glmvrml

回答

2

Using the Blobstore API with Google Cloud Storage例子展示瞭如何獲得用於GCS的等效blob_key:

blob_key = CreateFile(main.BUCKET + '/blobstore_serving_demo') 

從那個鏈接:

注:一旦你獲得了谷歌雲存儲對象的blobKey,你可以到處傳遞它,序列化,否則使用它 互換任何地方,你可以使用一個的blobKey存儲對象在Blobstore的 。這允許在應用程序將 Blobstore和一些數據存儲在Google Cloud Storage中的某些數據的情況下使用,但是其他應用程序在其他情況下以相同方式處理數據 。 (然而,的BlobInfo 對象不適用於谷歌雲存儲的對象。)

所以,你應該能夠產生的blobKey爲您的文件並調用get_serving_urldelete_serving_url它。

您也可以使用GCS對象權限來防止訪問該文件,請參閱Setting object permissions and metadata

+0

謝謝!聽起來很穩定,我會試一試,然後接受答案 – glmvrml