Compare commits
1 commit
master
...
RELEASE.20
Author | SHA1 | Date | |
---|---|---|---|
58855f173c |
|
@ -80,6 +80,7 @@ const (
|
||||||
ErrInvalidBucketName
|
ErrInvalidBucketName
|
||||||
ErrInvalidDigest
|
ErrInvalidDigest
|
||||||
ErrInvalidRange
|
ErrInvalidRange
|
||||||
|
ErrInvalidRangePartNumber
|
||||||
ErrInvalidCopyPartRange
|
ErrInvalidCopyPartRange
|
||||||
ErrInvalidCopyPartRangeSource
|
ErrInvalidCopyPartRangeSource
|
||||||
ErrInvalidMaxKeys
|
ErrInvalidMaxKeys
|
||||||
|
@ -503,6 +504,11 @@ var errorCodes = errorCodeMap{
|
||||||
Description: "The requested range is not satisfiable",
|
Description: "The requested range is not satisfiable",
|
||||||
HTTPStatusCode: http.StatusRequestedRangeNotSatisfiable,
|
HTTPStatusCode: http.StatusRequestedRangeNotSatisfiable,
|
||||||
},
|
},
|
||||||
|
ErrInvalidRangePartNumber: {
|
||||||
|
Code: "InvalidRequest",
|
||||||
|
Description: "Cannot specify both Range header and partNumber query parameter",
|
||||||
|
HTTPStatusCode: http.StatusBadRequest,
|
||||||
|
},
|
||||||
ErrMalformedXML: {
|
ErrMalformedXML: {
|
||||||
Code: "MalformedXML",
|
Code: "MalformedXML",
|
||||||
Description: "The XML you provided was not well-formed or did not validate against our published schema.",
|
Description: "The XML you provided was not well-formed or did not validate against our published schema.",
|
||||||
|
|
|
@ -156,16 +156,16 @@ func setObjectHeaders(w http.ResponseWriter, objInfo ObjectInfo, rs *HTTPRangeSp
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if rs == nil && opts.PartNumber > 0 {
|
||||||
|
rs = partNumberToRangeSpec(objInfo, opts.PartNumber)
|
||||||
|
}
|
||||||
|
|
||||||
// For providing ranged content
|
// For providing ranged content
|
||||||
start, rangeLen, err = rs.GetOffsetLength(totalObjectSize)
|
start, rangeLen, err = rs.GetOffsetLength(totalObjectSize)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if rs == nil && opts.PartNumber > 0 {
|
|
||||||
rs = partNumberToRangeSpec(objInfo, opts.PartNumber)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set content length.
|
// Set content length.
|
||||||
w.Header().Set(xhttp.ContentLength, strconv.FormatInt(rangeLen, 10))
|
w.Header().Set(xhttp.ContentLength, strconv.FormatInt(rangeLen, 10))
|
||||||
if rs != nil {
|
if rs != nil {
|
||||||
|
|
|
@ -395,7 +395,7 @@ func (api objectAPIHandlers) GetObjectHandler(w http.ResponseWriter, r *http.Req
|
||||||
|
|
||||||
// Both 'bytes' and 'partNumber' cannot be specified at the same time
|
// Both 'bytes' and 'partNumber' cannot be specified at the same time
|
||||||
if rs != nil && opts.PartNumber > 0 {
|
if rs != nil && opts.PartNumber > 0 {
|
||||||
writeErrorResponseHeadersOnly(w, errorCodes.ToAPIErr(ErrBadRequest))
|
writeErrorResponse(ctx, w, errorCodes.ToAPIErr(ErrInvalidRangePartNumber), r.URL, guessIsBrowserReq(r))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -648,7 +648,7 @@ func (api objectAPIHandlers) HeadObjectHandler(w http.ResponseWriter, r *http.Re
|
||||||
|
|
||||||
// Both 'bytes' and 'partNumber' cannot be specified at the same time
|
// Both 'bytes' and 'partNumber' cannot be specified at the same time
|
||||||
if rs != nil && opts.PartNumber > 0 {
|
if rs != nil && opts.PartNumber > 0 {
|
||||||
writeErrorResponseHeadersOnly(w, errorCodes.ToAPIErr(ErrBadRequest))
|
writeErrorResponseHeadersOnly(w, errorCodes.ToAPIErr(ErrInvalidRangePartNumber))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue