2015-06-10 138 views
1

一些谷歌documentation爲雲存儲旅途中客戶說:Google雲端存儲客戶端的重試邏輯在哪裏?

這個庫支持讀取和寫入大量數據到雲存儲,內部錯誤處理和重試,這樣你就不必寫自己的代碼來做到這一點。

但是,當使用下面的代碼片段將對象放入雲存儲時,偶爾會返回503 Service Unavailable錯誤。

重試雲存儲請求的邏輯位於何處?

conf, err := google.JWTConfigFromJSON([]byte(apiKey),storage.ScopeFullControl) 

    if err != nil { 
     panic(err) 
    } 

    ctx := cloud.NewContext(projectId, conf.Client(oauth2.NoContext)) 

    writer := storage.NewWriter(self.ctx, Bucket, key) 

    _, err := writer.Write(data) 
    if err != nil { 
     return err 
    } 
+1

如果錯誤是503,請等待,然後重試?有關鏈接,請參閱https://github.com/GoogleCloudPlatform/gcloud-golang/blob/262eba3f791eb465f961585c1eb4cde5672ee109/datastore/example_test.go – Momer

+0

感謝您的鏈接,但引用的文檔說庫本身處理重試,因此我不不得不。我可以實現重試自己,但是我想知道重試圖書館自己做了什麼,如果有的話。 –

回答

0

作爲對GCloud issue(2月20日)中提到由格倫·劉易斯:

我們在谷歌的-API-GO-客戶 庫ResumableMedia上傳,將簡單地從那裏重試工作它在 傳送過程中失敗了。我希望這應該可以解決 的問題,但是我沒有約會的日期,因爲我們會繼續進行設計討論,因此準備好 。

現在在源代碼中沒有提到ResumableMedia,所以看起來文檔是錯誤的。請注意,storage包是實驗性的。

相關問題