diff options
Diffstat (limited to 'drive/upload.go')
| -rw-r--r-- | drive/upload.go | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/drive/upload.go b/drive/upload.go index 5c5e38e..03cb5ad 100644 --- a/drive/upload.go +++ b/drive/upload.go @@ -8,7 +8,6 @@ import (      "path/filepath"      "google.golang.org/api/googleapi"      "google.golang.org/api/drive/v3" -    "golang.org/x/net/context"  )  type UploadFileArgs struct { @@ -20,9 +19,14 @@ type UploadFileArgs struct {      Recursive bool      Share bool      NoProgress bool +    ChunkSize int64  }  func (self *Drive) Upload(args UploadFileArgs) (err error) { +    if args.ChunkSize > intMax() - 1 { +        return fmt.Errorf("Chunk size is to big, max chunk size for this computer is %d", intMax() - 1) +    } +      srcFile, err := os.Open(args.Path)      if err != nil {          return fmt.Errorf("Failed to open file: %s", err) @@ -53,7 +57,10 @@ func (self *Drive) Upload(args UploadFileArgs) (err error) {      // Set parent folders      dstFile.Parents = args.Parents -    f, err := self.service.Files.Create(dstFile).ResumableMedia(context.Background(), srcFile, srcFileInfo.Size(), dstFile.MimeType).Do() +    // Chunk size option +    chunkSize := googleapi.ChunkSize(int(args.ChunkSize)) + +    f, err := self.service.Files.Create(dstFile).Media(srcFile, chunkSize).Do()      if err != nil {          return fmt.Errorf("Failed to upload file: %s", err)      } | 
