Google drive api 谷歌硬盘SDK-500:内部服务器错误:大部分时间文件上传成功

Google drive api 谷歌硬盘SDK-500:内部服务器错误:大部分时间文件上传成功,google-drive-api,Google Drive Api,Google Drive REST API在尝试上载文件时有时会返回500:Internal服务器错误。这些错误中的大多数实际上与成功上传相对应。我们按照谷歌的建议重试上传,但后来看到重复的 处理这些错误的推荐方法是什么?这里介绍了标准错误处理: 然而,500个错误永远不会发生,所以请添加日志信息,谷歌可以为您调试这个问题。谢谢。似乎表明这是他们的内部错误,而不是您可以修复的特定错误。他们建议使用,这基本上是在增加间隔重新尝试该功能 例如,函数失败。请等待2秒钟,然后重试。如果失败,请等待4秒钟

Google Drive REST API在尝试上载文件时有时会返回500:Internal服务器错误。这些错误中的大多数实际上与成功上传相对应。我们按照谷歌的建议重试上传,但后来看到重复的


处理这些错误的推荐方法是什么?

这里介绍了标准错误处理:

然而,500个错误永远不会发生,所以请添加日志信息,谷歌可以为您调试这个问题。谢谢。

似乎表明这是他们的内部错误,而不是您可以修复的特定错误。他们建议使用,这基本上是在增加间隔重新尝试该功能

例如,函数失败。请等待2秒钟,然后重试。如果失败,请等待4秒钟。然后是8秒,16秒,32秒等等。更大的差距意味着你给了越来越多的时间让服务恢复正常。尽管根据您的需要,您可能希望最终限制时间,使其在停止前最多等待10分钟

该软件包对此有很好的设置。您可以通过重试导入重试
,然后将
retry
用作应该重新尝试的任何函数的修饰符。下面是我的一个例子:

@retry(wait_exponential_multiplier=1000, wait_exponential_max=60*1000, stop_max_delay=10*60*1000)
def find_file(name, parent=''):
    ...

要使用decorator,只需将
@retry
放在函数声明之前。您可以只使用
retry()
,但可以传递一些可选参数来调整计时的工作方式。我使用
等待\u指数\u乘数
来调整尝试之间等待时间的增加
wait\u index\u max
是它在两次尝试之间可以等待的最长时间。
stop\u max\u delay
是它在引发异常之前重试的时间。它们的所有值都以毫秒为单位。

当我得到500分时,我会记录整个响应,当我找到一个时,我会回复。投票支持这个问题-这里为我解决了相同的问题-请参阅我之前的评论。检查mime类型并尝试上载内容类型为Applicationo/octet stream的文件。GoogleDrive有时在文件转换方面会失败。我在上传CSV文件并要求google进行转换时看到了这一点。下面是异常堆栈跟踪(我使用java sdk):
但是,500个错误永远不会发生
——当然也会发生,原因不明。驱动器文档(例如您链接到的文档)不会解释5xx错误,例如500。但是作为一个经常使用JavaDriveSDK的人,我可以向你保证,它们总是发生。我只是让它背靠背地发生了约60次,同时尝试1。重命名一个或多个文件。插入文件