forked from TrueCloudLab/frostfs-s3-gw
[#450] Fix aws-chunked header workflow
Signed-off-by: Pavel Pogodaev <p.pogodaev@yadro.com>
This commit is contained in:
parent
62615d7ab7
commit
98815d5473
3 changed files with 19 additions and 8 deletions
|
@ -205,10 +205,7 @@ func (h *handler) UploadPartHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var size uint64
|
size := h.getPutPayloadSize(r)
|
||||||
if r.ContentLength > 0 {
|
|
||||||
size = uint64(r.ContentLength)
|
|
||||||
}
|
|
||||||
|
|
||||||
p := &layer.UploadPartParams{
|
p := &layer.UploadPartParams{
|
||||||
Info: &layer.UploadInfoParams{
|
Info: &layer.UploadInfoParams{
|
||||||
|
|
|
@ -242,10 +242,7 @@ func (h *handler) PutObjectHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
metadata[api.ContentEncoding] = encodings
|
metadata[api.ContentEncoding] = encodings
|
||||||
}
|
}
|
||||||
|
|
||||||
var size uint64
|
size := h.getPutPayloadSize(r)
|
||||||
if r.ContentLength > 0 {
|
|
||||||
size = uint64(r.ContentLength)
|
|
||||||
}
|
|
||||||
|
|
||||||
params := &layer.PutObjectParams{
|
params := &layer.PutObjectParams{
|
||||||
BktInfo: bktInfo,
|
BktInfo: bktInfo,
|
||||||
|
|
|
@ -106,6 +106,23 @@ func (h *handler) getBucketAndCheckOwner(r *http.Request, bucket string, header
|
||||||
return bktInfo, checkOwner(bktInfo, expected)
|
return bktInfo, checkOwner(bktInfo, expected)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *handler) getPutPayloadSize(r *http.Request) uint64 {
|
||||||
|
decodeContentSize := r.Header.Get(api.AmzDecodedContentLength)
|
||||||
|
decodedSize, err := strconv.Atoi(decodeContentSize)
|
||||||
|
if err != nil {
|
||||||
|
decodedSize = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
var size uint64
|
||||||
|
if decodedSize > 0 {
|
||||||
|
size = uint64(decodedSize)
|
||||||
|
} else if r.ContentLength > 0 {
|
||||||
|
size = uint64(r.ContentLength)
|
||||||
|
}
|
||||||
|
|
||||||
|
return size
|
||||||
|
}
|
||||||
|
|
||||||
func parseRange(s string) (*layer.RangeParams, error) {
|
func parseRange(s string) (*layer.RangeParams, error) {
|
||||||
if s == "" {
|
if s == "" {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
|
|
Loading…
Reference in a new issue