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

时间:2013-04-03 21:03:39

标签: google-drive-api

Google Drive REST API在尝试上传文件时有时会返回500:内部服务器错误。大多数这些错误实际上对应于成功上传。我们会根据Google的推荐重新尝试上传,以便稍后查看重复内容。

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

2 个答案:

答案 0 :(得分:0)

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

例如,该功能失败。等待2秒钟再试一次。如果失败,请等待4秒。然后是8秒,16,32等。更大的差距意味着你将越来越多的时间用于服务本身。虽然根据您的需要,您可能希望最终限制时间,以便在停止前等待最多10分钟。

retrying包有一个非常好的设置。您可以from retrying import retry然后使用retry作为应重新尝试的任何函数的装饰器。这是我的一个例子:

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

要使用装饰器,您只需要在函数声明之前放置@retry。您可以使用retry(),但可以传递可选参数来调整时序的工作方式。我使用wait_exponential_multiplier来调整尝试之间等待时间的增加。 wait_exponential_max是尝试之间等待的最长时间。并且stop_max_delay是在引发异常之前花费重试的时间。它们的所有值都以毫秒为单位。

答案 1 :(得分:-2)

此处描述了标准错误处理:https://developers.google.com/drive/handle-errors

但是,永远不会发生500个错误,因此请添加日志信息,Google可以为您调试此问题。感谢。