aboutsummaryrefslogtreecommitdiffstats
path: root/drive/sync_upload.go
diff options
context:
space:
mode:
Diffstat (limited to 'drive/sync_upload.go')
-rw-r--r--drive/sync_upload.go19
1 files changed, 10 insertions, 9 deletions
diff --git a/drive/sync_upload.go b/drive/sync_upload.go
index f1e43a4..bd2b76d 100644
--- a/drive/sync_upload.go
+++ b/drive/sync_upload.go
@@ -3,13 +3,14 @@ package drive
import (
"bytes"
"fmt"
- "google.golang.org/api/drive/v3"
- "google.golang.org/api/googleapi"
"io"
"os"
"path/filepath"
"sort"
"time"
+
+ "google.golang.org/api/drive/v3"
+ "google.golang.org/api/googleapi"
)
type UploadSyncArgs struct {
@@ -96,7 +97,7 @@ func (self *Drive) UploadSync(args UploadSyncArgs) error {
func (self *Drive) prepareSyncRoot(args UploadSyncArgs) (*drive.File, error) {
fields := []googleapi.Field{"id", "name", "mimeType", "appProperties"}
- f, err := self.service.Files.Get(args.RootId).Fields(fields...).Do()
+ f, err := self.service.Files.Get(args.RootId).SupportsAllDrives(true).Fields(fields...).Do()
if err != nil {
return nil, fmt.Errorf("Failed to find root dir: %s", err)
}
@@ -128,7 +129,7 @@ func (self *Drive) prepareSyncRoot(args UploadSyncArgs) (*drive.File, error) {
AppProperties: map[string]string{"sync": "true", "syncRoot": "true"},
}
- f, err = self.service.Files.Update(f.Id, dstFile).Fields(fields...).Do()
+ f, err = self.service.Files.Update(f.Id, dstFile).SupportsAllDrives(true).Fields(fields...).Do()
if err != nil {
return nil, fmt.Errorf("Failed to update root directory: %s", err)
}
@@ -268,7 +269,7 @@ func (self *Drive) createMissingRemoteDir(args createMissingRemoteDirArgs) (*dri
return dstFile, nil
}
- f, err := self.service.Files.Create(dstFile).Do()
+ f, err := self.service.Files.Create(dstFile).SupportsAllDrives(true).Do()
if err != nil {
if isBackendOrRateLimitError(err) && args.try < MaxErrorRetries {
exponentialBackoffSleep(args.try)
@@ -311,7 +312,7 @@ func (self *Drive) uploadMissingFile(parentId string, lf *LocalFile, args Upload
// Wrap reader in timeout reader
reader, ctx := getTimeoutReaderContext(progressReader, args.Timeout)
- _, err = self.service.Files.Create(dstFile).Fields("id", "name", "size", "md5Checksum").Context(ctx).Media(reader, chunkSize).Do()
+ _, err = self.service.Files.Create(dstFile).SupportsAllDrives(true).Fields("id", "name", "size", "md5Checksum").Context(ctx).Media(reader, chunkSize).Do()
if err != nil {
if isBackendOrRateLimitError(err) && try < MaxErrorRetries {
exponentialBackoffSleep(try)
@@ -352,7 +353,7 @@ func (self *Drive) updateChangedFile(cf *changedFile, args UploadSyncArgs, try i
// Wrap reader in timeout reader
reader, ctx := getTimeoutReaderContext(progressReader, args.Timeout)
- _, err = self.service.Files.Update(cf.remote.file.Id, dstFile).Context(ctx).Media(reader, chunkSize).Do()
+ _, err = self.service.Files.Update(cf.remote.file.Id, dstFile).SupportsAllDrives(true).Context(ctx).Media(reader, chunkSize).Do()
if err != nil {
if isBackendOrRateLimitError(err) && try < MaxErrorRetries {
exponentialBackoffSleep(try)
@@ -373,7 +374,7 @@ func (self *Drive) deleteRemoteFile(rf *RemoteFile, args UploadSyncArgs, try int
return nil
}
- err := self.service.Files.Delete(rf.file.Id).Do()
+ err := self.service.Files.Delete(rf.file.Id).SupportsAllDrives(true).Do()
if err != nil {
if isBackendOrRateLimitError(err) && try < MaxErrorRetries {
exponentialBackoffSleep(try)
@@ -389,7 +390,7 @@ func (self *Drive) deleteRemoteFile(rf *RemoteFile, args UploadSyncArgs, try int
func (self *Drive) dirIsEmpty(id string) (bool, error) {
query := fmt.Sprintf("'%s' in parents", id)
- fileList, err := self.service.Files.List().Q(query).Do()
+ fileList, err := self.service.Files.List().Corpora("allDrives").IncludeItemsFromAllDrives(true).SupportsAllDrives(true).Q(query).Do()
if err != nil {
return false, fmt.Errorf("Empty dir check failed: ", err)
}