[s3] fix s3 test_multipart_get_part (#5476)
* try fix s3 test_multipart_get_part * add passed s3 tests * fix SeaweedFSUploadId * rm spaces * convert part request to range * add passed s3 tests of multipart
This commit is contained in:
committed by
GitHub
parent
8833745fbc
commit
33537ae29f
@@ -370,6 +370,9 @@ func (s3a *S3ApiServer) proxyToFiler(w http.ResponseWriter, r *http.Request, des
|
||||
if _, ok := s3_constants.PassThroughHeaders[strings.ToLower(k)]; ok {
|
||||
proxyReq.Header[k] = v
|
||||
}
|
||||
if k == "partNumber" {
|
||||
proxyReq.Header[s3_constants.SeaweedFSPartNumber] = v
|
||||
}
|
||||
}
|
||||
for header, values := range r.Header {
|
||||
proxyReq.Header[header] = values
|
||||
@@ -411,7 +414,7 @@ func (s3a *S3ApiServer) proxyToFiler(w http.ResponseWriter, r *http.Request, des
|
||||
}
|
||||
|
||||
TimeToFirstByte(r.Method, start, r)
|
||||
if resp.Header.Get(s3_constants.X_SeaweedFS_Header_Directory_Key) == "true" {
|
||||
if resp.Header.Get(s3_constants.SeaweedFSIsDirectoryKey) == "true" {
|
||||
responseStatusCode := responseFn(resp, w)
|
||||
s3err.PostLog(r, responseStatusCode, s3err.ErrNone)
|
||||
return
|
||||
@@ -429,6 +432,18 @@ func (s3a *S3ApiServer) proxyToFiler(w http.ResponseWriter, r *http.Request, des
|
||||
return
|
||||
}
|
||||
|
||||
if resp.StatusCode == http.StatusBadRequest {
|
||||
resp_body, _ := io.ReadAll(resp.Body)
|
||||
switch string(resp_body) {
|
||||
case "InvalidPart":
|
||||
s3err.WriteErrorResponse(w, r, s3err.ErrInvalidPart)
|
||||
default:
|
||||
s3err.WriteErrorResponse(w, r, s3err.ErrInvalidRequest)
|
||||
}
|
||||
resp.Body.Close()
|
||||
return
|
||||
}
|
||||
|
||||
setUserMetadataKeyToLowercase(resp)
|
||||
|
||||
responseStatusCode := responseFn(resp, w)
|
||||
|
||||
Reference in New Issue
Block a user