azureblob: Avoid context deadline exceeded error by setting a large TryTimeout value - Fixes #2647

This commit is contained in:
brused27 2018-11-05 12:33:57 -06:00 committed by Nick Craig-Wood
parent 1b78f4d1ea
commit d87aa33ec5

View file

@ -50,6 +50,7 @@ const (
defaultUploadCutoff = 256 * fs.MebiByte defaultUploadCutoff = 256 * fs.MebiByte
maxUploadCutoff = 256 * fs.MebiByte maxUploadCutoff = 256 * fs.MebiByte
defaultAccessTier = azblob.AccessTierNone defaultAccessTier = azblob.AccessTierNone
maxTryTimeout = time.Hour * 24 * 365 //max time of an azure web request response window (whether or not data is flowing)
) )
// Register with Fs // Register with Fs
@ -322,7 +323,7 @@ func NewFs(name, root string, m configmap.Mapper) (fs.Fs, error) {
if err != nil { if err != nil {
return nil, errors.Wrap(err, "failed to make azure storage url from account and endpoint") return nil, errors.Wrap(err, "failed to make azure storage url from account and endpoint")
} }
pipeline := azblob.NewPipeline(credential, azblob.PipelineOptions{}) pipeline := azblob.NewPipeline(credential, azblob.PipelineOptions{Retry: azblob.RetryOptions{TryTimeout: maxTryTimeout}})
serviceURL = azblob.NewServiceURL(*u, pipeline) serviceURL = azblob.NewServiceURL(*u, pipeline)
containerURL = serviceURL.NewContainerURL(container) containerURL = serviceURL.NewContainerURL(container)
case opt.SASURL != "": case opt.SASURL != "":
@ -331,7 +332,7 @@ func NewFs(name, root string, m configmap.Mapper) (fs.Fs, error) {
return nil, errors.Wrapf(err, "failed to parse SAS URL") return nil, errors.Wrapf(err, "failed to parse SAS URL")
} }
// use anonymous credentials in case of sas url // use anonymous credentials in case of sas url
pipeline := azblob.NewPipeline(azblob.NewAnonymousCredential(), azblob.PipelineOptions{}) pipeline := azblob.NewPipeline(azblob.NewAnonymousCredential(), azblob.PipelineOptions{Retry: azblob.RetryOptions{TryTimeout: maxTryTimeout}})
// Check if we have container level SAS or account level sas // Check if we have container level SAS or account level sas
parts := azblob.NewBlobURLParts(*u) parts := azblob.NewBlobURLParts(*u)
if parts.ContainerName != "" { if parts.ContainerName != "" {