2013-04-03 28 views

回答

-2

標準錯誤處理說明如下:https://developers.google.com/drive/handle-errors

然而,500錯誤不應該發生,所以請添加日誌信息,而谷歌可以看看調試這個問題你。謝謝。

+0

我會記錄整個迴應,當我得到一個500,並回復時,我找到一個。 – Rajiv 2013-04-11 21:42:10

+0

爲此投了票 - 同樣的問題在這裏http://stackoverflow.com/questions/19769000/google-drive-uploading-file-size-limit – 2013-11-04 13:45:00

+0

解決了我 - 見我以前的評論。 檢查你的MIME類型,並嘗試上傳你的文件與內容類型:application/octet-stream。 GoogleDrive有時會通過文件轉換失敗。 – 2013-11-21 00:19:05

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是在引發異常之前花費重試的時間。所有的值都是毫秒。

相關問題