Modify: FileName header in remote put request should be urlencoded

This commit is contained in:
HFO4
2020-01-13 09:47:04 +08:00
parent 4b6fbc0de2
commit 6b6bfb4c6b
2 changed files with 11 additions and 6 deletions

View File

@@ -101,6 +101,11 @@ func (handler Handler) Put(ctx context.Context, file io.ReadCloser, dst string,
return err
}
// 对文件名进行URLEncode
fileName, err := url.QueryUnescape(path.Base(dst))
if err != nil {
return err
}
// 上传文件
resp, err := handler.Client.Request(
"POST",
@@ -109,7 +114,7 @@ func (handler Handler) Put(ctx context.Context, file io.ReadCloser, dst string,
request.WithHeader(map[string][]string{
"Authorization": {credential.Token},
"X-Policy": {credential.Policy},
"X-FileName": {path.Base(dst)},
"X-FileName": {fileName},
}),
request.WithContentLength(int64(size)),
).CheckHTTPResponse(200).DecodeResponse()