|
@ -229,28 +229,11 @@ func (s3a *S3ApiServer) PutObjectPartHandler(w http.ResponseWriter, r *http.Requ |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
dataReader := r.Body |
|
|
|
|
|
rAuthType := getRequestAuthType(r) |
|
|
|
|
|
if s3a.iam.isEnabled() { |
|
|
|
|
|
var s3ErrCode s3err.ErrorCode |
|
|
|
|
|
switch rAuthType { |
|
|
|
|
|
case authTypeStreamingSigned, authTypeStreamingUnsigned: |
|
|
|
|
|
dataReader, s3ErrCode = s3a.iam.newChunkedReader(r) |
|
|
|
|
|
case authTypeSignedV2, authTypePresignedV2: |
|
|
|
|
|
_, s3ErrCode = s3a.iam.isReqAuthenticatedV2(r) |
|
|
|
|
|
case authTypePresigned, authTypeSigned: |
|
|
|
|
|
_, s3ErrCode = s3a.iam.reqSignatureV4Verify(r) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
dataReader, s3ErrCode := getRequestDataReader(s3a, r) |
|
|
if s3ErrCode != s3err.ErrNone { |
|
|
if s3ErrCode != s3err.ErrNone { |
|
|
s3err.WriteErrorResponse(w, r, s3ErrCode) |
|
|
s3err.WriteErrorResponse(w, r, s3ErrCode) |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
} else { |
|
|
|
|
|
if authTypeStreamingSigned == rAuthType { |
|
|
|
|
|
s3err.WriteErrorResponse(w, r, s3err.ErrAuthNotSetup) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
defer dataReader.Close() |
|
|
defer dataReader.Close() |
|
|
|
|
|
|
|
|
glog.V(2).Infof("PutObjectPartHandler %s %s %04d", bucket, uploadID, partID) |
|
|
glog.V(2).Infof("PutObjectPartHandler %s %s %04d", bucket, uploadID, partID) |
|
|