aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetter Rasmussen2016-01-23 23:41:19 +0100
committerPetter Rasmussen2016-01-23 23:41:19 +0100
commit280ce2d2a71d27b4d389d130865e909e61dead25 (patch)
tree3592ff4d061ea8c6599cf8f5f85bccc260cff5e5
parentfdb18f8a1aa5ef13e22437fc56fc303bf65afc4e (diff)
downloadgdrive-280ce2d2a71d27b4d389d130865e909e61dead25.tar.bz2
ResumableMedia is deprecated, use Media with ChunkSize
-rw-r--r--drive/upload.go11
-rw-r--r--gdrive.go6
-rw-r--r--handlers_drive.go1
3 files changed, 16 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)
}
diff --git a/gdrive.go b/gdrive.go
index 9dce10f..8754d90 100644
--- a/gdrive.go
+++ b/gdrive.go
@@ -193,6 +193,12 @@ func main() {
Description: "Share file",
OmitValue: true,
},
+ cli.IntFlag{
+ Name: "chunksize",
+ Patterns: []string{"--chunksize"},
+ Description: fmt.Sprintf("Set chunk size in bytes, default: %d", DefaultUploadChunkSize),
+ DefaultValue: DefaultUploadChunkSize,
+ },
},
},
},
diff --git a/handlers_drive.go b/handlers_drive.go
index d454b4f..8245481 100644
--- a/handlers_drive.go
+++ b/handlers_drive.go
@@ -62,6 +62,7 @@ func uploadHandler(ctx cli.Context) {
Recursive: args.Bool("recursive"),
Share: args.Bool("share"),
NoProgress: args.Bool("noProgress"),
+ ChunkSize: args.Int64("chunksize"),
})
checkErr(err)
}