diff options
Diffstat (limited to 'drive/sync_upload.go')
| -rw-r--r-- | drive/sync_upload.go | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drive/sync_upload.go b/drive/sync_upload.go index 15a0327..f5bc48b 100644 --- a/drive/sync_upload.go +++ b/drive/sync_upload.go @@ -236,7 +236,7 @@ func (self *Drive) deleteExtraneousRemoteFiles(files *syncFiles, args UploadSync continue } - err := self.deleteRemoteFile(rf, args) + err := self.deleteRemoteFile(rf, args, 0) if err != nil { return err } @@ -339,10 +339,16 @@ func (self *Drive) updateChangedFile(cf *changedFile, args UploadSyncArgs, try i return nil } -func (self *Drive) deleteRemoteFile(rf *RemoteFile, args UploadSyncArgs) error { +func (self *Drive) deleteRemoteFile(rf *RemoteFile, args UploadSyncArgs, try int) error { err := self.service.Files.Delete(rf.file.Id).Do() if err != nil { - return fmt.Errorf("Failed to delete file: %s", err) + if isBackendError(err) && try < MaxBackendErrorRetries { + exponentialBackoffSleep(try) + try++ + self.deleteRemoteFile(rf, args, try) + } else { + return fmt.Errorf("Failed to delete file: %s", err) + } } return nil |
