Мониторинг возобновляемой загрузки файлов в Google Drive v3 - PullRequest
0 голосов
/ 25 декабря 2018

Я пишу свою собственную оболочку для Google Drive API v3 на Python.У меня небольшая проблема с загрузкой файлов и просмотром того, что происходит.Вот небольшой пример кода

# create service using oauth2flow -> drive_service
# upload pdf from disk
media = MediaFileUpload('/files/test.pdf', resumable=True)

file_metadata = {'name': 'test.pdf'}

res = drive_service.files().create(
    body=file_metadata,
    media_body=media,
    fields="id"
)

Все работает нормально, но я не могу увидеть, сколько байтов было передано до сих пор (как в случае загрузки, у меня есть метод next_chunk).Кроме того, я действительно не знаю, как использовать функциональность resumable=True в случае ошибки.Еще одна вещь, если я добавлю chunksize переменную в MediaFileUpload, я получу 400 ошибок Bad Request.Возможно ли иметь такую ​​же функциональность, как в методе загрузки, где я могу загружать файлы по частям и отслеживать, что происходит?

РЕДАКТИРОВАТЬ:

@ Tanaike решил проблему.Вы можете отслеживать загрузку, используя метод next_chunk, но chunkize должен быть кратным 256 КБ.Вот пример кода:

CHUNK_SIZE = 256 * 1024
DEFAULT_CHUNK_SIZE = 100 * 1024 * 1024

media = MediaFileUpload('/files/test.pdf', resumable=True, chunksize=CHUNK_SIZE)

file_metadata = {'name': 'test.pdf'}

res = drive_service.files().create(
    body=file_metadata,
    media_body=media,
    fields="id"
)

response = None
while response is None:
    status, response = res.next_chunk()

    try:
        sys.stdout.write('%d/%d Bytes transfered' % (status.resumable_progress, status.total_size))     
    except:
        pass   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...