Google ドライブ フォルダにファイルをアップロードする Google App Engine アプリを 1 つ作成しています。
そのために、Google API Python クライアント ライブラリを使用しています。 https://code.google.com/p/google-api-python-client/
1 つのフォームからファイル コンテンツを取得しているため、ライブラリから MediaIoBaseUpload 関数を使用しています。そして、再開可能なアップロードを使用しています。
15 MB 程度の小さいサイズのファイルをアップロードすると問題なく動作しますが、15 MB を超えるファイルをアップロードすると、最後のチャンクでエラー 400 Bad Request が発生します。
以前のチャンクはすべて正常に動作しますが、最後のチャンクはエラーを返します。
1 つの zip ファイル (約 46 MB) をアップロードしようとしています。
これが私のコードです:
fh = io.BytesIO(self.fileContent)
media = MediaIoBaseUpload(fh, "application/zip", 1024 * 1024, resumable=True)
http = httplib2.Http()
if credentials.invalid is True:
credentials.refresh(http)
else:
http = credentials.authorize(http)
drive_service = build('drive', 'v2', http=http)
body = {
'title': self.fileName,
'description': "",
"parents": [{
"kind": "drive#fileLink",
"id": self.folderId
}],
'mimeType': fileMimeType
}
response = drive_service.files().insert(body=body, media_body=media).execute()