From 30f992c6a83673358f1da3c7a6794030bb160935 Mon Sep 17 00:00:00 2001 From: Noah Hsu <i@nn.ci> Date: Sat, 8 Oct 2022 22:23:33 +0800 Subject: [PATCH] feat(onedrive): customize chunk size (close #1927) --- drivers/onedrive/driver.go | 3 +++ drivers/onedrive/meta.go | 1 + drivers/onedrive/util.go | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/onedrive/driver.go b/drivers/onedrive/driver.go index d320821a..8ade7360 100644 --- a/drivers/onedrive/driver.go +++ b/drivers/onedrive/driver.go @@ -34,6 +34,9 @@ func (d *Onedrive) Init(ctx context.Context, storage model.Storage) error { if err != nil { return err } + if d.ChunkSize < 1 { + d.ChunkSize = 5 + } return d.refreshToken() } diff --git a/drivers/onedrive/meta.go b/drivers/onedrive/meta.go index 36f9cbc1..86125844 100644 --- a/drivers/onedrive/meta.go +++ b/drivers/onedrive/meta.go @@ -14,6 +14,7 @@ type Addition struct { RedirectUri string `json:"redirect_uri" required:"true" default:"https://tool.nn.ci/onedrive/callback"` RefreshToken string `json:"refresh_token" required:"true"` SiteId string `json:"site_id"` + ChunkSize int64 `json:"chunk_size" type:"number" default:"5"` } var config = driver.Config{ diff --git a/drivers/onedrive/util.go b/drivers/onedrive/util.go index 1d67f311..2376e7f2 100644 --- a/drivers/onedrive/util.go +++ b/drivers/onedrive/util.go @@ -166,7 +166,7 @@ func (d *Onedrive) upBig(ctx context.Context, dstDir model.Obj, stream model.Fil } uploadUrl := jsoniter.Get(res, "uploadUrl").ToString() var finish int64 = 0 - const DEFAULT = 100 * 1024 * 1024 + DEFAULT := d.ChunkSize * 1024 * 1024 for finish < stream.GetSize() { if utils.IsCanceled(ctx) { return ctx.Err()