загружать файлы Google Drive через Google Drive API - PullRequest
0 голосов
/ 03 января 2019

Я сделал аутентификацию учетной записи на сервере через код Python:

APP_CREDENTIALS = service_account.Credentials.from_service_account_file(
    #config.EE_ACCOUNT,
    config.EE_PRIVATE_KEY_FILE,
    scopes = OAUTH_SCOPE)

service = build('drive', 'v3', credentials=APP_CREDENTIALS)

И я набрал этот код для печати этих файлов на диске:

state = task.status()['state']
        if state == ee.batch.Task.State.COMPLETED:
            logging.info('Task succeeded (id: %s).', task.id)

        results = service.files().list().execute()
        items = results.get('files', [])
        if not items:
            print('No files found.')
        else:
            print('Files:')
            for item in items:
                if item['id'] == '1MiXjaHXU3ktOrkVwdkAABuNM-HXhJGGF':
                    print('downloadfiles')
                    download_file(item['id'], service)
                print(u'{0} ({1})'.format(item['name'], item['id']))

Результат был:

NDVI_1229.tif (1MiXjaHXU3ktOrkVwdkAABuNM-HXhJGGF)
NDVI_1229.tif (1y5anN0zpRYW180pd0t74xbOWxr0bjfdm)
NDVI_1229.tif (1X8fYAzRrUBxPMLpZmx_bJULLwq09lJPb)
NDVI_1229.tif (1iSk51dCTAyiVjPbCFQ3irnjhYsn708mV)
NDVI_1229.tif (1Cr3G7tZF2xYAmO70n6tvSs65Ot7MWr69)
NDVI_1229.tif (1KlGUVmr3maaiya4WAeD0ShI6DAsUcxT5)
NDVI_1229.tif (1kkGxRQulWYIG7tX0J8f_n5T1hwhYK_O0)
NDVI_1229.tif (1AqgchB8X7aul1rhVk76GlF1Iwm5N-UFR)
NDVI_1229.tif (14A7Kzcweaft8eBof_nWQGtLQ5RwvpFlP)
NDVI.tif (1GvY3JlMmqE-TgvqR5Fg8zPa9JvuJAyHJ)
NDVI.tif (15N4Kge7gR5bk7B3ZwRBG4Tad0PKU9nPc)
NDVI.tif (19cr8Ena_oztorgmOQL-FTBvNq4vN7nD9)
NDVI.tif (1oK5N5GTiTthkpk6rtjFF9wM4qeXDtESR) 

Теперь я хочу загрузить эти файлы и использую метод, указанный на официальном веб-сайте API Google Drive.Код был показан ниже:

def download_file(file_id, drive_service):
    request = drive_service.files().get_media(fileId=file_id)
    fh = io.BytesIO()
    downloader = http.MediaIoBaseDownload(fh, request)
    done = False
    while done is False:
        status, done = downloader.next_chunk()
        print "Download %d%%." % int(status.progress() * 100)
    return fh.getvalue()

И я получил этот ответ:

INFO     2019-01-02 08:32:04,585 discovery.py:871] URL being requested: GET https://www.googleapis.com/drive/v3/files/1MiXjaHXU3ktOrkVwdkAABuNM-HXhJGGF?alt=media
Download 100%.

Я открыл ссылку, ее содержание было таким:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "dailyLimitExceededUnreg",
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
 }
}

Поэтому я запутался в том, что мой метод аутентификации правильный или нет.И я пробовал разные способы загрузки файлов с этого диска или экспорта файлов с этого диска на диск другого пользователя, у него тот же ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...