2016-08-15 2 views
1
  1. Erster verwenden Ich habe Bild Lagerung:GAE Python: wie delete_serving_url

    import cloudstorage as gcs 
    ... 
    path = '/bucket/folder/image.jpg' 
    with gcs.open(path, 'w') as f: 
        f.write(data) 
    
  2. Dann url Ich werde dienen:

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

    Serving url im Allgemeinen wie erwartet funktioniert, die Sache verwende ich nicht blob_key, nur Dateiname (Pfad im Speicher).

  3. Ich frage mich, wie serving_url jetzt löschen, da nur sdk Methode

    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

Also 'delete_serving_url' löscht die ganze Datei auf gcs richtig? –

+0

Nein, ich lösche serving_url für Bild, so dass es nicht über diese URL – glmvrml

Antwort

2

Das Using the Blobstore API with Google Cloud Storage Beispiel zeigt blob_key akzeptiert, wie eine äquivalente blob_key für GCS erhalten:

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

Von diesem Link:

Hinweis: Sobald Sie eine blobKey für die Google Cloud Storage-Objekt erhalten, können Sie es um passieren, serialisiert werden, und es sonst verwenden austauschbar überall können Sie eine blobKey für Objekte verwenden, gespeichert in Blobstore. Dies ermöglicht die Verwendung, wo eine App einige Daten in Blobstore und einige in Google Cloud Storage speichert, aber behandelt die Daten ansonsten identisch durch den Rest der App. (Allerdings BlobInfo Objekte sind nicht für Google Cloud Storage-Objekte zur Verfügung.)

So sollten Sie in der Lage sein, eine blobKey für Ihre Datei zu erzeugen und rufen get_serving_url und delete_serving_url mit ihm.

Sie können auch GCS-Objektvorgaben verwenden, um den Zugriff auf die Datei zu verhindern, siehe Setting object permissions and metadata.

+0

Vielen Dank! Klingt solide, ich werde es versuchen und dann die Antwort annehmen – glmvrml