aboutsummaryrefslogtreecommitdiffstats
path: root/drive/upload.go
diff options
context:
space:
mode:
authorPetter Rasmussen2016-02-14 23:10:57 +0100
committerPetter Rasmussen2016-02-14 23:10:57 +0100
commitef097ce557abf04a4871429e313af52e13d31cec (patch)
tree45303a0e0f9ce141f2a1685745db9989178bf7c0 /drive/upload.go
parent453c097b053b8a85395caf117136f7aec1d1ada4 (diff)
downloadgdrive-ef097ce557abf04a4871429e313af52e13d31cec.tar.bz2
Add progress bar to upload from stdin
Diffstat (limited to 'drive/upload.go')
-rw-r--r--drive/upload.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/drive/upload.go b/drive/upload.go
index ad3cb34..4f237ca 100644
--- a/drive/upload.go
+++ b/drive/upload.go
@@ -161,6 +161,7 @@ type UploadStreamArgs struct {
Mime string
Share bool
ChunkSize int64
+ Progress io.Writer
}
func (self *Drive) UploadStream(args UploadStreamArgs) (err error) {
@@ -182,10 +183,13 @@ func (self *Drive) UploadStream(args UploadStreamArgs) (err error) {
// Chunk size option
chunkSize := googleapi.ChunkSize(int(args.ChunkSize))
+ // Wrap file in progress reader
+ srcReader := getProgressReader(args.In, args.Progress, 0)
+
fmt.Fprintf(args.Out, "Uploading %s\n", dstFile.Name)
started := time.Now()
- f, err := self.service.Files.Create(dstFile).Fields("id", "name", "size").Media(args.In, chunkSize).Do()
+ f, err := self.service.Files.Create(dstFile).Fields("id", "name", "size").Media(srcReader, chunkSize).Do()
if err != nil {
return fmt.Errorf("Failed to upload file: %s", err)
}