【发布时间】:2013-11-21 08:02:52
【问题描述】:
我正在尝试通过 REST API(可恢复上传)将我的文件上传到 Google Drive。
一切看起来都不错(XMLHttpRequest 触发 onprogress 和 onload 事件),但之后(触发加载)Google Drive PUT 请求失败并出现500 Internal Server Error。文件未出现在我的 Google Drive 文件夹中。错误 500 出现在 xhr.onload,而不是 xhr.onerror。
如果我尝试通过 Google Drive 界面上传该文件,也是如此。它有时会发生,而且我还没有 100% 复制的环境。
文件类型 Adobe .DNG 或 Canon .CR2 和文件大小 ~28MB。
我做错了什么?文件类型或文件是否存在已知错误或限制?
可能的原因:文件大小限制、文件类型限制,或者我的令牌在我的文件上传时已过期?
UPD:我按原样使用this uploader,只是进行了外观更改。
【问题讨论】:
-
消除 3 种可能性中的 2 种应该相当容易。文件类型限制会触发任何文件大小,我希望状态为 405。除非您设置了 convert=true,否则 Drive 不会关心您的文件类型。如果您的令牌过期,您应该得到 401。所以我个人猜测这是一个错误/文件大小问题。此页面support.google.com/drive/answer/37603?hl=en 表示未转换文件的限制为 10GB。
-
这是服务器响应参数:{"error":{"errors":[{"domain":"global","reason":"internalError","message":"InternalError"} ],"code":500,"message":"InternalError"}}
-
我认为这是一个云端硬盘错误,除非来自 Google 的人另有确认。您可能想尝试更可靠的旧版文档列表 API。
-
我发现了这个问题stackoverflow.com/questions/14628024/…,它确认如果您的问题是访问令牌过期,您会看到 401,而不是 500。
-
问题是否来自另一个 Google Drive 帐户?它适用于较小的文件吗?
标签: javascript api rest google-drive-api