diff --git a/rustfs/src/app/object_usecase.rs b/rustfs/src/app/object_usecase.rs index e7fc5ea2b..8f67d137e 100644 --- a/rustfs/src/app/object_usecase.rs +++ b/rustfs/src/app/object_usecase.rs @@ -636,8 +636,6 @@ impl DefaultObjectUsecase { } else { (EventName::ObjectCreatedPut, QuotaOperation::PutObject) }; - let helper = OperationHelper::new(&req, event_name, S3Operation::PutObject); - if request_context.is_post_object && is_post_object_sse_kms_requested(&req.input, &request_context.headers) { return Err(s3_error!(NotImplemented, "SSE-KMS is not supported for POST object uploads")); } @@ -647,9 +645,11 @@ impl DefaultObjectUsecase { return Err(s3_error!(InvalidStorageClass)); } if is_put_object_extract_requested(&request_context.headers) { - return self.execute_put_object_extract(req).await; + return self.execute_put_object_extract(req, request_context).await; } + let helper = OperationHelper::new(&req, event_name, S3Operation::PutObject); + let resolved_size = resolve_put_body_size(req.input.content_length, &request_context.headers)?; self.check_bucket_quota(&req.input.bucket, quota_operation, resolved_size as u64) .await?; @@ -3075,20 +3075,12 @@ impl DefaultObjectUsecase { ))) } - #[instrument(level = "debug", skip(self, req))] - pub async fn execute_put_object_extract(&self, req: S3Request) -> S3Result> { - let request_context = PutObjectRequestContext { - headers: req.headers.clone(), - trailing_headers: req.trailing_headers.clone(), - uri_query: req.uri.query().map(str::to_string), - is_post_object: req.extensions.get::().is_some(), - method: req.method.clone(), - uri: req.uri.clone(), - extensions: req.extensions.clone(), - credentials: req.credentials.clone(), - region: req.region.clone(), - service: req.service.clone(), - }; + #[instrument(level = "debug", skip(self, req, request_context))] + async fn execute_put_object_extract( + &self, + req: S3Request, + request_context: PutObjectRequestContext, + ) -> S3Result> { let helper = OperationHelper::new(&req, EventName::ObjectCreatedPut, S3Operation::PutObject).suppress_event(); if is_sse_kms_requested(&req.input, &request_context.headers) { return Err(s3_error!(NotImplemented, "SSE-KMS is not supported for extract uploads"));