#python #google-api #google-drive-api #google-api-python-client
#python #google-api #google-drive-api #google-api-python-client
Вопрос:
Я пытался загрузить возобновляемую загрузку файлов на Google api Drive в соответствии с документацией из https://developers.google.com/drive/api/v3/manage-uploads#python_1 . Ниже приведен пример кода, я застрял в текущей ситуации.
SCOPES = ['https://www.googleapis.com/auth/drive','https://www.googleapis.com/auth/drive.file','https://www.googleapis.com/auth/drive.appdata']
credentials = ServiceAccountCredentials.from_json_keyfile_name('json-file', SCOPES)
http=Http()
http.redirect_codes = http.redirect_codes - {308}
http_auth = credentials.authorize(http)
drive_service = build('drive', 'v3', http=http_auth,cache_discovery=False)
parent_id="folder-id"
source='/root/test.tar'
target='test.tar'
file_metadata = {'name': target, 'parents': [parent_id], 'mimeType': 'application/vnd.google-apps.file'}
media = MediaFileUpload(source,mimetype='application/vnd.google-apps.file',chunksize=1024*1024,resumable=True)
putfile=drive_service.files().create(body=file_metadata,media_body=media,fields='id').execute()
dest_id=putfile.get('id')
Эти строки содержат следующие ошибки. Я понятия не имею об этом.
вызовите HTTPError(соответственно, content, uri=self.uri) googleapiclient.errors.HTTPError:fields=idamp; alt=jsonamp;uploadType=возобновляемый возвращенный «Неверный запрос»>
Интересно, что вызывает эту проблему?
Ответ №1:
Вам не хватает размера фрагмента.
parent_id = "folder-id"
source = '/root/test.tar'
target = 'test.tar'
file_metadata = {'name': target, 'parents': [parent_id],
'mimeType': 'application/vnd.google-apps.file'}
media = MediaFileUpload(source, mimetype='application/vnd.google-apps.file',
chunksize=1024*1024, resumable=True)
putfile = drive_service.files().create(body=file_metadata,
media_body=media,fields='id').execute()
dest_id = putfile.get('id')
Комментарии:
1. Если вы получаете другую ошибку, вы можете открыть новый вопрос.
2. Я вернулся к первоначальной проблеме. googleapiclient.ошибки. HTTPError :