mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-28 00:58:59 +00:00
refactor(app): reuse put object request context (#2456)
This commit is contained in:
@@ -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<PutObjectInput>) -> S3Result<S3Response<PutObjectOutput>> {
|
||||
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::<PostObjectRequestMarker>().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<PutObjectInput>,
|
||||
request_context: PutObjectRequestContext,
|
||||
) -> S3Result<S3Response<PutObjectOutput>> {
|
||||
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"));
|
||||
|
||||
Reference in New Issue
Block a user