mirror of https://github.com/Xhofe/alist
fix(189pc):slice bounds out of range close #2045
parent
fc393f743f
commit
2efade123e
|
@ -110,7 +110,9 @@ func ParseHttpHeader(str string) map[string]string {
|
||||||
header := make(map[string]string)
|
header := make(map[string]string)
|
||||||
for _, value := range strings.Split(str, "&") {
|
for _, value := range strings.Split(str, "&") {
|
||||||
i := strings.Index(value, "=")
|
i := strings.Index(value, "=")
|
||||||
header[strings.TrimSpace(value[0:i])] = strings.TrimSpace(value[i+1:])
|
if i > 0 {
|
||||||
|
header[strings.TrimSpace(value[0:i])] = strings.TrimSpace(value[i+1:])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return header
|
return header
|
||||||
}
|
}
|
||||||
|
|
|
@ -314,7 +314,7 @@ func (y *Yun189PC) initLoginParam() error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to obtain verification code")
|
return fmt.Errorf("failed to obtain verification code")
|
||||||
}
|
}
|
||||||
if imgRes.Size() > 0 {
|
if imgRes.Size() > 20 {
|
||||||
if setting.GetStr(conf.OcrApi) != "" && !y.NonuseOrc {
|
if setting.GetStr(conf.OcrApi) != "" && !y.NonuseOrc {
|
||||||
vRes, err := base.RestyClient.R().
|
vRes, err := base.RestyClient.R().
|
||||||
SetMultipartField("image", "validateCode.png", "image/png", bytes.NewReader(imgRes.Body())).
|
SetMultipartField("image", "validateCode.png", "image/png", bytes.NewReader(imgRes.Body())).
|
||||||
|
@ -385,6 +385,7 @@ func (y *Yun189PC) CommonUpload(ctx context.Context, dstDir model.Obj, file mode
|
||||||
const DEFAULT int64 = 10485760
|
const DEFAULT int64 = 10485760
|
||||||
var count = int64(math.Ceil(float64(file.GetSize()) / float64(DEFAULT)))
|
var count = int64(math.Ceil(float64(file.GetSize()) / float64(DEFAULT)))
|
||||||
|
|
||||||
|
requestID := uuid.NewString()
|
||||||
params := Params{
|
params := Params{
|
||||||
"parentFolderId": dstDir.GetID(),
|
"parentFolderId": dstDir.GetID(),
|
||||||
"fileName": url.QueryEscape(file.GetName()),
|
"fileName": url.QueryEscape(file.GetName()),
|
||||||
|
@ -406,6 +407,7 @@ func (y *Yun189PC) CommonUpload(ctx context.Context, dstDir model.Obj, file mode
|
||||||
var initMultiUpload InitMultiUploadResp
|
var initMultiUpload InitMultiUploadResp
|
||||||
_, err = y.request(fullUrl+"/initMultiUpload", http.MethodGet, func(req *resty.Request) {
|
_, err = y.request(fullUrl+"/initMultiUpload", http.MethodGet, func(req *resty.Request) {
|
||||||
req.SetContext(ctx)
|
req.SetContext(ctx)
|
||||||
|
req.SetHeader("X-Request-ID", requestID)
|
||||||
}, params, &initMultiUpload)
|
}, params, &initMultiUpload)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -440,6 +442,7 @@ func (y *Yun189PC) CommonUpload(ctx context.Context, dstDir model.Obj, file mode
|
||||||
_, err = y.request(fullUrl+"/getMultiUploadUrls", http.MethodGet,
|
_, err = y.request(fullUrl+"/getMultiUploadUrls", http.MethodGet,
|
||||||
func(req *resty.Request) {
|
func(req *resty.Request) {
|
||||||
req.SetContext(ctx)
|
req.SetContext(ctx)
|
||||||
|
req.SetHeader("X-Request-ID", requestID)
|
||||||
}, Params{
|
}, Params{
|
||||||
"partInfo": fmt.Sprintf("%d-%s", i, silceMd5Base64),
|
"partInfo": fmt.Sprintf("%d-%s", i, silceMd5Base64),
|
||||||
"uploadFileId": initMultiUpload.Data.UploadFileID,
|
"uploadFileId": initMultiUpload.Data.UploadFileID,
|
||||||
|
@ -475,6 +478,7 @@ func (y *Yun189PC) CommonUpload(ctx context.Context, dstDir model.Obj, file mode
|
||||||
_, err = y.request(fullUrl+"/commitMultiUploadFile", http.MethodGet,
|
_, err = y.request(fullUrl+"/commitMultiUploadFile", http.MethodGet,
|
||||||
func(req *resty.Request) {
|
func(req *resty.Request) {
|
||||||
req.SetContext(ctx)
|
req.SetContext(ctx)
|
||||||
|
req.SetHeader("X-Request-ID", requestID)
|
||||||
}, Params{
|
}, Params{
|
||||||
"uploadFileId": initMultiUpload.Data.UploadFileID,
|
"uploadFileId": initMultiUpload.Data.UploadFileID,
|
||||||
"fileMd5": fileMd5Hex,
|
"fileMd5": fileMd5Hex,
|
||||||
|
@ -531,6 +535,7 @@ func (y *Yun189PC) FastUpload(ctx context.Context, dstDir model.Obj, file model.
|
||||||
sliceMd5Hex = strings.ToUpper(utils.GetMD5Encode(strings.Join(silceMd5Hexs, "\n")))
|
sliceMd5Hex = strings.ToUpper(utils.GetMD5Encode(strings.Join(silceMd5Hexs, "\n")))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
requestID := uuid.NewString()
|
||||||
// 检测是否支持快传
|
// 检测是否支持快传
|
||||||
params := Params{
|
params := Params{
|
||||||
"parentFolderId": dstDir.GetID(),
|
"parentFolderId": dstDir.GetID(),
|
||||||
|
@ -553,6 +558,7 @@ func (y *Yun189PC) FastUpload(ctx context.Context, dstDir model.Obj, file model.
|
||||||
var uploadInfo InitMultiUploadResp
|
var uploadInfo InitMultiUploadResp
|
||||||
_, err = y.request(fullUrl+"/initMultiUpload", http.MethodGet, func(req *resty.Request) {
|
_, err = y.request(fullUrl+"/initMultiUpload", http.MethodGet, func(req *resty.Request) {
|
||||||
req.SetContext(ctx)
|
req.SetContext(ctx)
|
||||||
|
req.SetHeader("X-Request-ID", requestID)
|
||||||
}, params, &uploadInfo)
|
}, params, &uploadInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -564,6 +570,7 @@ func (y *Yun189PC) FastUpload(ctx context.Context, dstDir model.Obj, file model.
|
||||||
_, err = y.request(fullUrl+"/getMultiUploadUrls", http.MethodGet,
|
_, err = y.request(fullUrl+"/getMultiUploadUrls", http.MethodGet,
|
||||||
func(req *resty.Request) {
|
func(req *resty.Request) {
|
||||||
req.SetContext(ctx)
|
req.SetContext(ctx)
|
||||||
|
req.SetHeader("X-Request-ID", requestID)
|
||||||
}, Params{
|
}, Params{
|
||||||
"uploadFileId": uploadInfo.Data.UploadFileID,
|
"uploadFileId": uploadInfo.Data.UploadFileID,
|
||||||
"partInfo": strings.Join(silceMd5Base64s, ","),
|
"partInfo": strings.Join(silceMd5Base64s, ","),
|
||||||
|
@ -600,6 +607,7 @@ func (y *Yun189PC) FastUpload(ctx context.Context, dstDir model.Obj, file model.
|
||||||
_, err = y.request(fullUrl+"/commitMultiUploadFile", http.MethodGet,
|
_, err = y.request(fullUrl+"/commitMultiUploadFile", http.MethodGet,
|
||||||
func(req *resty.Request) {
|
func(req *resty.Request) {
|
||||||
req.SetContext(ctx)
|
req.SetContext(ctx)
|
||||||
|
req.SetHeader("X-Request-ID", requestID)
|
||||||
}, Params{
|
}, Params{
|
||||||
"uploadFileId": uploadInfo.Data.UploadFileID,
|
"uploadFileId": uploadInfo.Data.UploadFileID,
|
||||||
"isLog": "0",
|
"isLog": "0",
|
||||||
|
|
Loading…
Reference in New Issue