diff --git a/drivers/baiduphoto/baidu.go b/drivers/baiduphoto/baidu.go index 287ec433..c192939b 100644 --- a/drivers/baiduphoto/baidu.go +++ b/drivers/baiduphoto/baidu.go @@ -87,7 +87,7 @@ func (driver Baidu) GetAllFile(account *model.Account) (files []File, err error) for { var resp FileListResp - _, err = driver.Request(http.MethodGet, FILE_API_URL+"/list", func(r *resty.Request) { + _, err = driver.Request(http.MethodGet, FILE_API_URL_V1+"/list", func(r *resty.Request) { r.SetQueryParams(map[string]string{ "need_thumbnail": "1", "need_filter_hidden": "0", diff --git a/drivers/baiduphoto/driver.go b/drivers/baiduphoto/driver.go index ce871019..833ef89f 100644 --- a/drivers/baiduphoto/driver.go +++ b/drivers/baiduphoto/driver.go @@ -224,13 +224,12 @@ func (driver Baidu) LinkFile(args base.Args, account *model.Account) (*base.Link if err != nil { return nil, err } - // 获取文件下载地址 - res, err := base.NoRedirectClient.R(). - SetQueryParams(map[string]string{ - "access_token": account.AccessToken, - "fsid": fmt.Sprint(cfile.Fsid), - }). - Head(FILE_API_URL + "/download") + + res, err := driver.Request(http.MethodGet, FILE_API_URL_V2+"/download", func(r *resty.Request) { + r.SetQueryParams(map[string]string{ + "fsid": fmt.Sprint(cfile.Fsid), + }) + }, account) if err != nil { return nil, err } @@ -238,7 +237,7 @@ func (driver Baidu) LinkFile(args base.Args, account *model.Account) (*base.Link Headers: []base.Header{ {Name: "User-Agent", Value: base.UserAgent}, }, - Url: res.Header().Get("location"), + Url: utils.Json.Get(res.Body(), "dlink").ToString(), }, nil } @@ -454,7 +453,7 @@ func (driver Baidu) Upload(file *model.FileStream, account *model.Account) error // 预上传 var precreateResp PrecreateResp - _, err = driver.Request(http.MethodPost, FILE_API_URL+"/precreate", func(r *resty.Request) { + _, err = driver.Request(http.MethodPost, FILE_API_URL_V1+"/precreate", func(r *resty.Request) { r.SetFormData(params) r.SetResult(&precreateResp) }, account) @@ -483,7 +482,7 @@ func (driver Baidu) Upload(file *model.FileStream, account *model.Account) error fallthrough case 2: // 创建文件 params["uploadid"] = precreateResp.UploadID - _, err = driver.Request(http.MethodPost, FILE_API_URL+"/create", func(r *resty.Request) { + _, err = driver.Request(http.MethodPost, FILE_API_URL_V1+"/create", func(r *resty.Request) { r.SetFormData(params) r.SetResult(&precreateResp) }, account) diff --git a/drivers/baiduphoto/types.go b/drivers/baiduphoto/types.go index 734b5a53..926329d6 100644 --- a/drivers/baiduphoto/types.go +++ b/drivers/baiduphoto/types.go @@ -97,7 +97,7 @@ type ( type ( UploadFile struct { FsID int64 `json:"fs_id"` - Size int `json:"size"` + Size int64 `json:"size"` Md5 string `json:"md5"` ServerFilename string `json:"server_filename"` Path string `json:"path"` diff --git a/drivers/baiduphoto/util.go b/drivers/baiduphoto/util.go index 5ab40a52..2c0542c7 100644 --- a/drivers/baiduphoto/util.go +++ b/drivers/baiduphoto/util.go @@ -13,9 +13,10 @@ import ( ) const ( - API_URL = "https://photo.baidu.com/youai" - ALBUM_API_URL = API_URL + "/album/v1" - FILE_API_URL = API_URL + "/file/v1" + API_URL = "https://photo.baidu.com/youai" + ALBUM_API_URL = API_URL + "/album/v1" + FILE_API_URL_V1 = API_URL + "/file/v1" + FILE_API_URL_V2 = API_URL + "/file/v2" ) var (