Проблема с использованием модуля cloudstorage в python - PullRequest
0 голосов
/ 04 июля 2018

Я пытаюсь загрузить напрямую в Google Cloud Storage с нескольких 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 в изолированной среде, но все равно не повезло.

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

Есть идеи, где может быть проблема?

Спасибо!

1 Ответ

0 голосов
/ 04 июля 2018

сделать 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>

...