Скачать файлы из Google Bucket - PullRequest
       9

Скачать файлы из Google Bucket

0 голосов
/ 04 сентября 2018

У меня проблемы с загрузкой файлов в Google Bucket. Я следовал этому учебнику Google (используя клиентскую библиотеку и учетную запись службы)

Вот код Python, который я использую (из примера Google): импорт JSON из httplib2 Http импорта из oauth2client.client import SignedJwtAssertionCredentials из apiclient.discovery импортная сборка

client_email = 'myclientname@myproject.iam.gserviceaccount.com'

json_file = 'resources/Google/myproject-anumber.json' ## <---- JSON provided when i created the service account

cloud_storage_bucket = 'mybucketname'

report_to_download = 'path/to/my/file.zip'


private_key = json.loads(open(json_file).read())['private_key']

credentials = SignedJwtAssertionCredentials(client_email, private_key, 
              'https://www.googleapis.com/auth/devstorage.read_only')

storage = build('storage', 'v1', http=credentials.authorize(Http()))
report = storage.objects().get(bucket = cloud_storage_bucket, object = 
report_to_download).execute()

Я думал, что тогда мне придется выводить «отчет» в файл, но нет, как описано здесь, отчет - это только объект dict:

https://google -api-client-libraries.appspot.com / документация / хранение / v1beta2 / питон / последний / storage_v1beta2.objectAccessControls.html # прибудете

Тогда я попытался использовать атрибут selfLink или mediaLink, но безуспешно. То же самое для 'https://cloud.google.com/storage/docs/json_api/v1/objects/get' который возвращает ACL aswell

Заранее спасибо,

1 Ответ

0 голосов
/ 04 сентября 2018

Вы можете загрузить объект с кодом , показанным здесь . Я предлагаю следовать этому документу , чтобы установить клиентские библиотеки Cloud Storage и настроить аутентификацию.

Ниже приведен пример кода Python для загрузки объекта на основе вышеупомянутой информации.

from google.cloud import storage
if __name__ == '__main__':
    bucket_name = 'your_bucket'
    source_blob_name = 'your_object'
    destination_file_name = 'local_file'
    #DOWNLOAD
    storage_client = storage.Client()
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.blob(source_blob_name)
    blob.download_to_filename(destination_file_name)
    print('Blob {} downloaded to {}.'.format(source_blob_name, destination_file_name))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...