Проблема с использованием модуля cloudstorage в python

Я пытаюсь загрузить напрямую в облачное хранилище Google из серии URL-адресов. Я пытался реализовать форму решения здесь: Как загрузить изображение из Интернета в Google Cloud Storage?

В частности, всякий раз, когда я пытаюсь открыть файл с помощью модуля cloudstorage,

options={'x-goog-acl': 'public-read', 'Cache-Control': 'private, max-age=0, no-transform'}
with gcs.open(filename, 'w', content_type=content_type, options=options) as f:
    f.write(image_bytes)

Я получаю следующую ошибку:


AttributeError                            Traceback (most recent call last)
<ipython-input-8-dec1a5d39c62> in <module>()
     18 
     19 options={'x-goog-acl': 'public-read', 'Cache-Control': 'private, max-age=0, no-transform'}
---> 20 with gcs.open(filename, 'w', content_type=content_type, options=options) as f:
     21     f.write(image_bytes)
     22     f.close()

AttributeError: 'module' object has no attribute 'open'

Я уже пытался установить облачное хранилище в изолированной среде, но безуспешно.

Согласно ссылке ниже, cloudtorage.open() существует в https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/functions

Любая идея, где проблема может быть?

Спасибо!


person Lilo    schedule 04.07.2018    source источник


Ответы (1)


сделать print dir(gcs), чтобы увидеть, что там. возможно, вы устанавливаете аналогично названный, но другой пакет.

Похоже, это тот, который вы хотите

https://github.com/GoogleCloudPlatform/appengine-gcs-client/tree/master/python/src/cloudstorage

и это функция, которую вы пытаетесь использовать:

https://github.com/GoogleCloudPlatform/appengine-gcs-client/blob/master/python/src/cloudstorage/cloudstorage_api.py#L47

Readme.md для этого репо указывает здесь:

https://cloud.google.com/appengine/docs/standard/python/googlecloudstorageclient/setting-up-cloud-storage

который говорит сделать это:

pip install GoogleAppEngineCloudStorageClient -t <your_app_directory/lib>

person Alex    schedule 04.07.2018
comment
Большое спасибо Алекс! Кажется, я использовал неправильную библиотеку. - person Lilo; 05.07.2018
comment
У него есть проблемы с python3: stackoverflow.com/questions/48560171 / - person Bilal Ahmed Yaseen; 16.11.2018