From 0fbdedecc741ca71455b7ab8058cddd54939c82f Mon Sep 17 00:00:00 2001 From: Taehyung Lim Date: Fri, 2 May 2025 05:08:03 +0900 Subject: [s3] refactor duplicate put-object code paths (#6727) --- weed/s3api/s3api_put_object_helper.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 weed/s3api/s3api_put_object_helper.go (limited to 'weed/s3api/s3api_put_object_helper.go') diff --git a/weed/s3api/s3api_put_object_helper.go b/weed/s3api/s3api_put_object_helper.go new file mode 100644 index 000000000..f1348aa0e --- /dev/null +++ b/weed/s3api/s3api_put_object_helper.go @@ -0,0 +1,30 @@ +package s3api + +import ( + "io" + "net/http" + + "github.com/seaweedfs/seaweedfs/weed/s3api/s3err" +) + +func getRequestDataReader(s3a *S3ApiServer, r *http.Request) (io.ReadCloser, s3err.ErrorCode) { + var s3ErrCode s3err.ErrorCode + dataReader := r.Body + rAuthType := getRequestAuthType(r) + if s3a.iam.isEnabled() { + 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) + } + } else { + if authTypeStreamingSigned == rAuthType { + s3ErrCode = s3err.ErrAuthNotSetup + } + } + + return dataReader, s3ErrCode +} -- cgit v1.2.3