diff options
Diffstat (limited to 'drive/update.go')
| -rw-r--r-- | drive/update.go | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/drive/update.go b/drive/update.go index 4fa33ed..806b705 100644 --- a/drive/update.go +++ b/drive/update.go @@ -6,12 +6,13 @@ import ( "os" "io" "path/filepath" + "google.golang.org/api/googleapi" "google.golang.org/api/drive/v3" - "golang.org/x/net/context" ) type UpdateArgs struct { Out io.Writer + Progress io.Writer Id string Path string Name string @@ -20,7 +21,7 @@ type UpdateArgs struct { Recursive bool Stdin bool Share bool - NoProgress bool + ChunkSize int64 } func (self *Drive) Update(args UpdateArgs) (err error) { @@ -58,7 +59,13 @@ func (self *Drive) Update(args UpdateArgs) (err error) { // Set parent folders dstFile.Parents = args.Parents - f, err := self.service.Files.Update(args.Id, dstFile).ResumableMedia(context.Background(), srcFile, srcFileInfo.Size(), dstFile.MimeType).Do() + // Chunk size option + chunkSize := googleapi.ChunkSize(int(args.ChunkSize)) + + // Wrap file in progress reader + srcReader := getProgressReader(srcFile, args.Progress, srcFileInfo.Size()) + + f, err := self.service.Files.Update(args.Id, dstFile).Media(srcReader, chunkSize).Do() if err != nil { return fmt.Errorf("Failed to upload file: %s", err) } |
