2015-06-10 186 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包是实验性的。

相关问题