mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-27 16:48:58 +00:00
fix: missing object.key in S3 event notifications for multipart uploads (#1621)
Co-authored-by: loverustfs <hello@rustfs.com>
This commit is contained in:
@@ -531,7 +531,8 @@ impl S3 for FS {
|
||||
&self,
|
||||
req: S3Request<CompleteMultipartUploadInput>,
|
||||
) -> S3Result<S3Response<CompleteMultipartUploadOutput>> {
|
||||
let helper = OperationHelper::new(&req, EventName::ObjectCreatedCompleteMultipartUpload, "s3:CompleteMultipartUpload");
|
||||
let mut helper =
|
||||
OperationHelper::new(&req, EventName::ObjectCreatedCompleteMultipartUpload, "s3:CompleteMultipartUpload");
|
||||
let input = req.input;
|
||||
let CompleteMultipartUploadInput {
|
||||
multipart_upload,
|
||||
@@ -698,6 +699,7 @@ impl S3 for FS {
|
||||
let mpu_key = key.clone();
|
||||
let mpu_version = obj_info.version_id.map(|v| v.to_string());
|
||||
let mpu_version_clone = mpu_version.clone();
|
||||
let mpu_version_for_event = mpu_version.clone();
|
||||
tokio::spawn(async move {
|
||||
manager
|
||||
.invalidate_cache_versioned(&mpu_bucket, &mpu_key, mpu_version_clone.as_deref())
|
||||
@@ -782,12 +784,19 @@ impl S3 for FS {
|
||||
|
||||
if dsc.replicate_any() {
|
||||
warn!("need multipart replication");
|
||||
schedule_replication(obj_info, store, dsc, ReplicationType::Object).await;
|
||||
schedule_replication(obj_info.clone(), store, dsc, ReplicationType::Object).await;
|
||||
}
|
||||
info!(
|
||||
"TDD: About to return S3Response with output: SSE={:?}, KMS={:?}",
|
||||
output.server_side_encryption, output.ssekms_key_id
|
||||
);
|
||||
|
||||
// Set object info for event notification
|
||||
helper = helper.object(obj_info.clone());
|
||||
if let Some(version_id) = &mpu_version_for_event {
|
||||
helper = helper.version_id(version_id.clone());
|
||||
}
|
||||
|
||||
let helper_result = Ok(S3Response::new(helper_output));
|
||||
let _ = helper.complete(&helper_result);
|
||||
Ok(S3Response::new(output))
|
||||
|
||||
Reference in New Issue
Block a user