Some Google documentation for the go client for Cloud Storage says:
This library supports reading and writing large amounts of data to Cloud Storage, with internal error handling and retries, so you don't have to write your own code to do this.
However, when using the below snippet of code which PUTs an object to Cloud Storage, a 503 Service Unavailable error gets returned to me occasionally.
Where is the logic for retrying Cloud Storage requests located?
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
}
As mentioned by Glenn Lewis on a GCloud issue (20 Feb):
Right now there is no reference to
ResumableMedia
in the source code, so seems that the documentation is wrong. Note that thestorage
package is experimental.