mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-21 11:56:38 +00:00
fix sse-options (#2056)
This commit is contained in:
@@ -168,14 +168,11 @@ async fn prepare_sse_configuration(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get bucket default encryption configuration.
|
// Get bucket default encryption configuration.
|
||||||
// Only buckets with explicit SSE config return Ok; unconfigured buckets return ConfigNotFound.
|
|
||||||
let bucket_sse_config_result = metadata_sys::get_sse_config(bucket).await;
|
let bucket_sse_config_result = metadata_sys::get_sse_config(bucket).await;
|
||||||
debug!("bucket_sse_config_result={:?}", bucket_sse_config_result);
|
debug!("bucket_sse_config_result={:?}", bucket_sse_config_result);
|
||||||
|
|
||||||
if let Ok((bucket_sse_config, _timestamp)) = bucket_sse_config_result {
|
if let Ok((bucket_sse_config, _timestamp)) = bucket_sse_config_result {
|
||||||
// Use request SSE, or bucket's apply_server_side_encryption_by_default. Do NOT default to
|
let effective_sse = server_side_encryption.clone().or_else(|| {
|
||||||
// AES256 when neither is set (avoids forcing encryption for buckets without default SSE).
|
|
||||||
let effective_sse_opt = server_side_encryption.clone().or_else(|| {
|
|
||||||
bucket_sse_config.rules.first().and_then(|rule| {
|
bucket_sse_config.rules.first().and_then(|rule| {
|
||||||
debug!("Processing SSE rule: {:?}", rule);
|
debug!("Processing SSE rule: {:?}", rule);
|
||||||
rule.apply_server_side_encryption_by_default.as_ref().map(|sse| {
|
rule.apply_server_side_encryption_by_default.as_ref().map(|sse| {
|
||||||
@@ -188,11 +185,10 @@ async fn prepare_sse_configuration(
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
if effective_sse.is_none() {
|
||||||
let Some(effective_sse) = effective_sse_opt else {
|
|
||||||
debug!("no request SSE and no bucket default SSE; skip encryption");
|
|
||||||
return Ok(None);
|
return Ok(None);
|
||||||
};
|
}
|
||||||
|
|
||||||
debug!("effective_sse={:?} (original={:?})", effective_sse, server_side_encryption);
|
debug!("effective_sse={:?} (original={:?})", effective_sse, server_side_encryption);
|
||||||
|
|
||||||
let effective_kms_key_id = ssekms_key_id.or_else(|| {
|
let effective_kms_key_id = ssekms_key_id.or_else(|| {
|
||||||
@@ -204,7 +200,7 @@ async fn prepare_sse_configuration(
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ok(Some(SseConfiguration {
|
Ok(Some(SseConfiguration {
|
||||||
effective_sse,
|
effective_sse: effective_sse.unwrap(),
|
||||||
effective_kms_key_id,
|
effective_kms_key_id,
|
||||||
}))
|
}))
|
||||||
} else if let Err(e) = bucket_sse_config_result {
|
} else if let Err(e) = bucket_sse_config_result {
|
||||||
|
|||||||
Reference in New Issue
Block a user