谷歌云端硬盘上传文件大小限制

Google Drive uploading file size limit

本文关键字:文件大小 云端 硬盘 谷歌      更新时间:2023-09-26

我试图通过REST API将我的文件上传到Google云端硬盘(可恢复上传)。一切看起来都不错(XMLHttpRequest触发onprogressonload事件),但是在它(加载触发)之后,Google云端硬盘PUT请求失败并500 Internal Server Error。文件未显示在我的 Google 云端硬盘文件夹中。错误 500 以 xhr.onload 表示,而不是以xhr.onerror为单位。

如果我尝试通过Google云端硬盘界面上传该文件,则相同。它有时会发生,我没有 100% 重现的环境。

文件类型 土坯 .DNG佳能 .CR2 和文件大小 ~28MB。

我做错了什么?是已知的错误或文件类型或文件的限制吗?

可能的原因:文件大小限制、文件类型限制,或者我的令牌在上传文件时过期?

UPD:我按原样使用此上传器,只是进行了外观更改。

好的。知道了。

使用内容类型 == "应用程序/八位字节流"成功上传文件。看起来像GoogleDrive方面的错误,带有mime类型的文件。在这种情况下,我的原始文件(DNG,CR2,NEF等)以不正确的MIME类型存储在Google云端硬盘中(因此这些文件没有预览)。

所以我不能再按 mime 类型过滤文件了。

Query string = (mimeType = 'image/x-adobe-dng' or mimeType = 'image/x-canon-cr2' or mimeType = 'image/x-nikon-nef').

我尝试按关键字标题过滤文件,但看起来标题不包含扩展名,但在响应项标题中包含扩展名。

Query string = (title contains '.dng' or title contains '.cr2' or title contains '.nef').

所以我必须不是按 mime 类型或标题过滤我的文件,而是按 fullText 关键字。

Query string = (fullText contains '.dng' or fullText contains '.cr2' or fullText contains '.nef').

结论:

  1. Google云端硬盘上传器会检查内容类型,即使转换选项设置为false也是如此。
  2. Google云端硬盘不时会因这种转换而失败。
  3. 上传器在内容类型 == '应用程序/八位字节流'下工作正常。
  4. Google云端硬盘查询字符串关键字标题不包含文件扩展名,但在响应中标题具有扩展名
  5. Google云端硬盘查询字符串关键字fullText包含带有扩展名的文件名(MB对于文本文件来说不是很快)。
  6. 要测试您的请求,您可以在页面末尾 https://developers.google.com/drive/v2/reference/files/list 使用此工具。
  7. GoogleDrive API不时崩溃,并显示HTTP状态500内部服务器错误

{"error":{"errors":[{"domain":"global","reason":"backendError","message":"Backend Error"}],"code": 500,"message": "Backend Error"}}

我认为这与原始照片文件有关,因为DRIVE会尝试像在Google+中那样将它们转换为JPG,除非您指定convert=false。您应该在上传 API 中指定不转换该文件。

第二篇帖子说,它将允许您预览最大25MB的文件,此大小限制可能与您的麻烦有关。也许您可以尝试上传另一张小于该尺寸的照片,以确保这不是限制。

我也在

谷歌分析中看到过几次这个 500 错误,并且由于服务器繁忙而正常。 如果我稍等片刻,然后重试,它可以工作。 尝试阅读此 https://developers.google.com/drive/handle-errors#implementing_exponential_backoff 这让我使用 Google Analtyics API 工作,正常情况下,当它到达步骤 6 时,它再次获得访问权限。 没有尝试过谷歌云端硬盘,但是我以前没有尝试上传25m文件。 但我敢打赌那是你的问题。