python - 使用 Google App Engine Python 将大文件上传到 Google Drive 时出现 400 错误请求

标签 python google-app-engine file-upload google-drive-api

我正在创建一个 Google App Engine 应用程序,我想在其中将文件上传到我的 Google 云端硬盘文件夹。

为此,我正在使用 Google API Python 客户端库。 https://code.google.com/p/google-api-python-client/

我正在使用库中的 MediaIoBaseUpload 函数,因为我正在从一个表单获取文件内容。我正在使用可恢复上传。

当我上传一个 15 MB 左右的较小文件时,它工作正常,但是大于 15 MB 的文件我在最后一个 block 中收到错误 400 Bad Request。

所有之前的 block 都工作正常,但最后一个 block 返回错误。

我正在尝试上传一个 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()

最佳答案

不要为父级设置 kind 属性。请改用以下列表:

"parents": [{ "id": self.folderId }]

关于python - 使用 Google App Engine Python 将大文件上传到 Google Drive 时出现 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17274373/

相关文章:

python - 从秩亏矩阵中提取线性独立行的例程

python - 如何更改pandas数据框中多索引中的外层索引?

python - 如何在 for 循环中使用 vstack 以便将 csr_matrix 矩阵附加在一起

java - App Engine 连接的 Android 应用程序警告 : You must run the ValidationTool as part of your server build process

python - Google App Engine - NDB - 在多条记录上设置属性值

python - Pandas 列的别名

php - 我可以在谷歌应用引擎中运行 php mysql 吗

javascript - TypeError 无法设置属性 'size of' 未定义

javascript - 在上传之前使用 jquery 预览图像

java - 大文件上传时ClientAbortException : java. io.IOException