From 751bfd456f459cb2046af249d91e20be8fbc8ea2 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Mon, 9 Jul 2018 17:12:18 +0100 Subject: [PATCH] box: make --box-commit-retries flag defaulting to 100 - Fixes #2054 Sometimes it takes many more commit retries than expected to commit a multipart file, so split this number into its own config variable and default it to 100 which should always be enough. --- backend/box/box.go | 8 +++++++- backend/box/upload.go | 4 +++- docs/content/box.md | 4 ++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/backend/box/box.go b/backend/box/box.go index 31f912e3b..337584b78 100644 --- a/backend/box/box.go +++ b/backend/box/box.go @@ -88,13 +88,19 @@ func init() { Help: "Cutoff for switching to multipart upload.", Default: fs.SizeSuffix(defaultUploadCutoff), Advanced: true, + }, { + Name: "commit_retries", + Help: "Max number of times to try committing a multipart file.", + Default: 100, + Advanced: true, }}, }) } // Options defines the configuration for this backend type Options struct { - UploadCutoff fs.SizeSuffix `config:"upload_cutoff"` + UploadCutoff fs.SizeSuffix `config:"upload_cutoff"` + CommitRetries int `config:"commit_retries"` } // Fs represents a remote box diff --git a/backend/box/upload.go b/backend/box/upload.go index 63892ec14..a3133cb76 100644 --- a/backend/box/upload.go +++ b/backend/box/upload.go @@ -96,7 +96,9 @@ func (o *Object) commitUpload(SessionID string, parts []api.Part, modTime time.T request.Attributes.ContentCreatedAt = api.Time(modTime) var body []byte var resp *http.Response - maxTries := fs.Config.LowLevelRetries + // For discussion of this value see: + // https://github.com/ncw/rclone/issues/2054 + maxTries := o.fs.opt.CommitRetries const defaultDelay = 10 var tries int outer: diff --git a/docs/content/box.md b/docs/content/box.md index 7fc0a50f4..719158009 100644 --- a/docs/content/box.md +++ b/docs/content/box.md @@ -227,6 +227,10 @@ system. Cutoff for switching to chunked upload - must be >= 50MB. The default is 50MB. +#### --box-commit-retries int #### + +Max number of times to try committing a multipart file. (default 100) + ### Limitations ### Note that Box is case insensitive so you can't have a file called