diff --git a/drivers/aliyundrive_open/driver.go b/drivers/aliyundrive_open/driver.go index f85972b3..b829b07f 100644 --- a/drivers/aliyundrive_open/driver.go +++ b/drivers/aliyundrive_open/driver.go @@ -22,7 +22,7 @@ type AliyundriveOpen struct { DriveId string - limitList func(ctx context.Context, dir model.Obj) ([]model.Obj, error) + limitList func(ctx context.Context, data base.Json) (*Files, error) limitLink func(ctx context.Context, file model.Obj) (*model.Link, error) } @@ -49,8 +49,8 @@ func (d *AliyundriveOpen) Drop(ctx context.Context) error { return nil } -func (d *AliyundriveOpen) list(ctx context.Context, dir model.Obj) ([]model.Obj, error) { - files, err := d.getFiles(dir.GetID()) +func (d *AliyundriveOpen) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) { + files, err := d.getFiles(ctx, dir.GetID()) if err != nil { return nil, err } @@ -59,10 +59,6 @@ func (d *AliyundriveOpen) list(ctx context.Context, dir model.Obj) ([]model.Obj, }) } -func (d *AliyundriveOpen) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) { - return d.limitList(ctx, dir) -} - func (d *AliyundriveOpen) link(ctx context.Context, file model.Obj) (*model.Link, error) { res, err := d.request("/adrive/v1.0/openFile/getDownloadUrl", http.MethodPost, func(req *resty.Request) { req.SetBody(base.Json{ diff --git a/drivers/aliyundrive_open/util.go b/drivers/aliyundrive_open/util.go index 68e455d2..6e215f46 100644 --- a/drivers/aliyundrive_open/util.go +++ b/drivers/aliyundrive_open/util.go @@ -77,14 +77,24 @@ func (d *AliyundriveOpen) request(uri, method string, callback base.ReqCallback, return res.Body(), nil } -func (d *AliyundriveOpen) getFiles(fileId string) ([]File, error) { +func (d *AliyundriveOpen) list(ctx context.Context, data base.Json) (*Files, error) { + var resp Files + _, err := d.request("/adrive/v1.0/openFile/list", http.MethodPost, func(req *resty.Request) { + req.SetBody(data).SetResult(&resp) + }) + if err != nil { + return nil, err + } + return &resp, nil +} + +func (d *AliyundriveOpen) getFiles(ctx context.Context, fileId string) ([]File, error) { marker := "first" res := make([]File, 0) for marker != "" { if marker == "first" { marker = "" } - var resp Files data := base.Json{ "drive_id": d.DriveId, "limit": 200, @@ -98,9 +108,7 @@ func (d *AliyundriveOpen) getFiles(fileId string) ([]File, error) { //"video_thumbnail_width": 480, //"image_thumbnail_width": 480, } - _, err := d.request("/adrive/v1.0/openFile/list", http.MethodPost, func(req *resty.Request) { - req.SetBody(data).SetResult(&resp) - }) + resp, err := d.limitList(ctx, data) if err != nil { return nil, err }