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{