Google Cloud Storage с использованием Python

Я установил требуемую среду для Google Cloud Storage в соответствии с руководством. Я установил «gsutil» и установил все пути. Однако мой gsutil отлично работает, когда я пытаюсь запустить код ниже,

#!/usr/bin/python import StringIO import os import shutil import tempfile import time from oauth2_plugin import oauth2_plugin import boto # URI scheme for Google Cloud Storage. GOOGLE_STORAGE = 'gs' # URI scheme for accessing local files. LOCAL_FILE = 'file' uri=boto.storage_uri('sangin2', GOOGLE_STORAGE) try: uri.create_bucket() print "done!" except boto.exception.StorageCreateError, e: print "failed" 

Он дает ошибку «403 Access denied».

  Traceback (most recent call last): File "/Volumes/WingIDE-101-4.0.0/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 23, in <module> File "/Users/lsangin/gsutil/boto/boto/storage_uri.py", line 349, in create_bucket return conn.create_bucket(self.bucket_name, headers, location, policy) File "/Users/lsangin/gsutil/boto/boto/gs/connection.py", line 91, in create_bucket response.status, response.reason, body) boto.exception.GSResponseError: GSResponseError: 403 Forbidden <?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message></Error> 

Поскольку я новичок в этом, мне очень сложно понять, почему. Кто-нибудь может мне помочь? Спасибо.

One Solution collect form web for “Google Cloud Storage с использованием Python”

Библиотека boto должна автоматически найти и использовать файл $ HOME / .boto. Одна вещь, которую нужно проверить: убедитесь, что проект, который вы используете, установлен как ваш проект по умолчанию для устаревшего доступа (в консоли API щелкните «Доступ к хранилищу» и убедитесь, что он говорит «Это ваш проект по умолчанию для устаревшего доступа») , Когда я неправильно установил этот параметр, и я следую примеру созданного bucket, на который вы ссылались, я также получаю ошибку 403, однако не имеет смысла, что это будет работать для вас в gsutil, но не с прямым использованием boto.

Попробуйте добавить «debug = 2», когда вы создаете экземпляр объекта storage_uri, например:

 uri = boto.storage_uri(name, GOOGLE_STORAGE, debug=2) 

Это создаст дополнительную информацию об отладке на stdout, которую вы можете сравнить с выходом отладки из аналогичного рабочего примера gsutil (через gsutil -D mb).

  • Я действительно должен установить Xcode и скомпилировать PyObjC в результате обновления 1.7.6?
  • Является get_result () требуемым вызовом для put_async () в Google App Engine
  • Использование статических файлов application_readable
  • IOError: файл недоступен GAE
  • Как реализовать «автоинкремент» в Google AppEngine
  • Отображение разбиения на страницы в API приложений Google App EngineSearch
  • В чем разница между родительским и ссылочным свойством в Google App Engine?
  • Эффективный способ хранения кортежей в хранилище данных
  • Python - лучший язык программирования в мире.