From 40ef233d2451b7235a5569e9de106e4fcd3c3864 Mon Sep 17 00:00:00 2001 From: wangwuxuan2011 <101337393+wangwuxuan2011@users.noreply.github.com> Date: Sun, 8 Jan 2023 16:30:05 +0800 Subject: [PATCH] fix(USS): resolve driver problem (#2942) * remove:"Endpoint" and "CustomHost" are the same thing, remove "CustomHost" * fix: file download url error * fix: too many file get list error Co-authored-by: wangwuxuan --- drivers/uss/driver.go | 28 +++++++++++++--------------- drivers/uss/meta.go | 4 ++-- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/drivers/uss/driver.go b/drivers/uss/driver.go index 88126601..95ed3956 100644 --- a/drivers/uss/driver.go +++ b/drivers/uss/driver.go @@ -44,17 +44,18 @@ func (d *USS) Drop(ctx context.Context) error { func (d *USS) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) { prefix := getKey(dir.GetPath(), true) objsChan := make(chan *upyun.FileInfo, 10) - - cfg := &upyun.GetObjectsConfig{ - Path: prefix, - ObjectsChan: objsChan, - MaxListObjects: 0, - MaxListLevel: 1, - } - if err := d.client.List(cfg); err != nil { + var err error + go func() { + err = d.client.List(&upyun.GetObjectsConfig{ + Path: prefix, + ObjectsChan: objsChan, + MaxListObjects: 0, + MaxListLevel: 1, + }) + }() + if err != nil { return nil, err } - res := make([]model.Obj, 0) for obj := range objsChan { t := obj.Time @@ -66,16 +67,13 @@ func (d *USS) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]m } res = append(res, &f) } - return res, nil + return res, err } func (d *USS) Link(ctx context.Context, file model.Obj, args model.LinkArgs) (*model.Link, error) { key := getKey(file.GetPath(), false) - host := d.CustomHost - if host == "" { - host = d.Endpoint - } - if strings.Contains(host, "://") { + host := d.Endpoint + if !strings.Contains(host, "://") { //判断是否包含协议头,否则https host = "https://" + host } u := fmt.Sprintf("%s/%s", host, key) diff --git a/drivers/uss/meta.go b/drivers/uss/meta.go index 26b9a9e0..4ed7c96e 100644 --- a/drivers/uss/meta.go +++ b/drivers/uss/meta.go @@ -11,8 +11,8 @@ type Addition struct { Endpoint string `json:"endpoint" required:"true"` OperatorName string `json:"operator_name" required:"true"` OperatorPassword string `json:"operator_password" required:"true"` - CustomHost string `json:"custom_host"` - SignURLExpire int `json:"sign_url_expire" type:"number" default:"4"` + //CustomHost string `json:"custom_host"` //Endpoint与CustomHost作用相同,去除 + SignURLExpire int `json:"sign_url_expire" type:"number" default:"4"` } var config = driver.Config{