2016-11-09 5 views
0

В настоящее время я пытаюсь загрузить файлы с Google Storage с помощью Python API. Очевидно, это можно сделать, используя gsutil's cp, и действительно, я мог бы это сделать.Как загружать файлы программно из Google Storage через python?

sudo gsutil cp gs://???/stats/installs/*.csv .

Однако все примеры Google Python API я нашел не покрывают эту тему, я даже с учетом, если эта функция распространяется API.

+0

GSUtil написан на Python ; вы можете почти наверняка заглянуть внутрь, чтобы посмотреть, что он делает. Хотя я действительно думаю, что это обертка вокруг boto. –

ответ

2

Этот является покрыта Python Example  |  Cloud Storage Documentation  |  Google Cloud Platform (1 в Google на "Google хранения питона обертку"):

Для загрузки объекта: storage/api/crud_object.py (View on GitHub)

def get_object(bucket, filename, out_file): 
    service = create_service() 

    # Use get_media instead of get to get the actual contents of the object. 
    # http://g.co/dv/resources/api-libraries/documentation/storage/v1/python/latest/storage_v1.objects.html#get_media 
    req = service.objects().get_media(bucket=bucket, object=filename) 

    downloader = http.MediaIoBaseDownload(out_file, req) 

    done = False 
    while done is False: 
     status, done = downloader.next_chunk() 
     print("Download {}%.".format(int(status.progress() * 100))) 

    return out_file 
+0

Кстати, я смотрел [этот сайт] (https://support.google.com/googleplay/android-developer/answer/6135870?p=stats_export&rd=1#export), и они показывают другой подход, используя ' json', но пример не работает, потому что 'oauth2client.client.SignedJwtAssertionCredentials' и' apiclient.discovery import build' не могут быть найдены, может быть, этот подход больше не поддерживается? Я хочу, чтобы избежать использования 'gcloud init' –

+0

@AlbertoBonsanto, эта ссылка, похоже, связана с загрузкой некоторых отчетов, а не файлов пользователей. –

+0

Действительно, я хочу загрузить эти отчеты –