2016-08-15 11 views
1
  1. Сначала я положил изображение на хранение:GAE Python: как использовать delete_serving_url

    import cloudstorage as gcs 
    ... 
    path = '/bucket/folder/image.jpg' 
    with gcs.open(path, 'w') as f: 
        f.write(data) 
    
  2. Тогда я получаю выступающей URL:

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

    сервировки URL в целом работает, как и ожидалось, вещь Я не использую 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 пример показывает, как получить эквивалентную blob_key для ГКС:

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

С этой ссылкой:

Примечание: После получения BlobKey для объекта Google Cloud Storage, вы можете передать его вокруг, сериализовать его, а в противном случае использовать взаимозаменяемые в любом месте вы можете использовать BlobKey для объектов, хранящихся в Blobstore. Это позволяет использовать, когда приложение хранит некоторые данные в blobstore, а некоторые - в облачном хранилище Google, но обрабатывает данные , иначе идентично остальной части приложения. (Тем не менее, BlobInfo объектов недоступны для объектов Google Cloud Storage.)

Таким образом, вы должны быть в состоянии генерировать BlobKey для вашего файла и вызвать get_serving_url и delete_serving_url с ним.

Вы также можете использовать объекты GCS для предотвращения доступа к файлу, см. Setting object permissions and metadata.

+0

Спасибо! Звучит солидно, я попробую, а затем приму ответ – glmvrml

 Смежные вопросы

  • Нет связанных вопросов^_^