From cd1363d51975f21cd8ae7fd0aa8895fe792301d0 Mon Sep 17 00:00:00 2001 From: Zhengchao An Date: Mon, 24 Aug 2026 14:30:16 +0800 Subject: [PATCH] fix(scanner): restore s3s footprint baseline (#6486) chore(scanner): narrow s3s DTO references --- crates/scanner/src/scanner_folder.rs | 4 +++- .../scanner/src/scanner_folder/item_actions.rs | 18 +++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/crates/scanner/src/scanner_folder.rs b/crates/scanner/src/scanner_folder.rs index b4a3b96e8..3956c4484 100644 --- a/crates/scanner/src/scanner_folder.rs +++ b/crates/scanner/src/scanner_folder.rs @@ -49,7 +49,9 @@ use rustfs_filemeta::{ MetaCacheHealCandidateKind, }; use rustfs_utils::path::{SLASH_SEPARATOR, path_join_buf}; -use s3s::dto::{BucketLifecycleConfiguration, ObjectLockConfiguration, VersioningConfiguration}; +use s3s::dto::{BucketLifecycleConfiguration, LifecycleRuleFilter, ObjectLockConfiguration, VersioningConfiguration}; +#[cfg(test)] +use s3s::dto::{ExpirationStatus, LifecycleRule}; use time::OffsetDateTime; use tokio::select; use tokio::sync::mpsc; diff --git a/crates/scanner/src/scanner_folder/item_actions.rs b/crates/scanner/src/scanner_folder/item_actions.rs index 490d80017..524482b07 100644 --- a/crates/scanner/src/scanner_folder/item_actions.rs +++ b/crates/scanner/src/scanner_folder/item_actions.rs @@ -251,7 +251,7 @@ fn resolve_sizes(object_infos: &[ObjectInfo]) -> Vec { } fn lifecycle_rule_has_size_filter(lifecycle: &BucketLifecycleConfiguration, rule_id: &str) -> bool { - let filter_has_size = |filter: &s3s::dto::LifecycleRuleFilter| { + let filter_has_size = |filter: &LifecycleRuleFilter| { filter.object_size_greater_than.is_some() || filter.object_size_less_than.is_some() || filter @@ -1637,13 +1637,13 @@ mod tests { #[test] fn malformed_size_blocks_size_dependent_transition_but_allows_time_only_expiry() { let size_filtered = BucketLifecycleConfiguration { - rules: vec![s3s::dto::LifecycleRule { - status: s3s::dto::ExpirationStatus::from_static(s3s::dto::ExpirationStatus::ENABLED), + rules: vec![LifecycleRule { + status: ExpirationStatus::from_static(ExpirationStatus::ENABLED), expiration: None, abort_incomplete_multipart_upload: None, del_marker_expiration: None, id: Some("size".to_string()), - filter: Some(s3s::dto::LifecycleRuleFilter { + filter: Some(LifecycleRuleFilter { object_size_greater_than: Some(1), ..Default::default() }), @@ -1676,8 +1676,8 @@ mod tests { let mixed_filters = BucketLifecycleConfiguration { rules: vec![ size_filtered.rules[0].clone(), - s3s::dto::LifecycleRule { - status: s3s::dto::ExpirationStatus::from_static(s3s::dto::ExpirationStatus::ENABLED), + LifecycleRule { + status: ExpirationStatus::from_static(ExpirationStatus::ENABLED), expiration: None, abort_incomplete_multipart_upload: None, del_marker_expiration: None, @@ -1733,13 +1733,13 @@ mod tests { )); assert!(lifecycle_rule_has_size_filter( &BucketLifecycleConfiguration { - rules: vec![s3s::dto::LifecycleRule { - status: s3s::dto::ExpirationStatus::from_static(s3s::dto::ExpirationStatus::ENABLED), + rules: vec![LifecycleRule { + status: ExpirationStatus::from_static(ExpirationStatus::ENABLED), expiration: None, abort_incomplete_multipart_upload: None, del_marker_expiration: None, id: None, - filter: Some(s3s::dto::LifecycleRuleFilter { + filter: Some(LifecycleRuleFilter { object_size_greater_than: Some(1), ..Default::default() }),