diff --git a/Cargo.lock b/Cargo.lock index 08e2c333b..8e9ef5811 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9773,6 +9773,7 @@ dependencies = [ "rustfs-keystone", "rustfs-policy", "rustfs-rio", + "rustfs-storage-api", "rustfs-tls-runtime", "rustfs-utils", "rustls", diff --git a/crates/ecstore/src/store_api.rs b/crates/ecstore/src/store_api.rs index b69a31017..ef5b505dd 100644 --- a/crates/ecstore/src/store_api.rs +++ b/crates/ecstore/src/store_api.rs @@ -57,6 +57,8 @@ mod readers; mod traits; mod types; +pub(crate) use rustfs_storage_api::{BucketInfo, BucketOptions, DeleteBucketOptions, MakeBucketOptions}; + pub use readers::*; pub use traits::*; pub use types::*; diff --git a/crates/ecstore/src/store_api/types.rs b/crates/ecstore/src/store_api/types.rs index 971bdaf04..e4f64997f 100644 --- a/crates/ecstore/src/store_api/types.rs +++ b/crates/ecstore/src/store_api/types.rs @@ -1,8 +1,5 @@ use super::*; -// RUSTFS_COMPAT_TODO(API-003): keep old ecstore::store_api bucket DTO import paths while storage API consumers migrate. Remove after all consumers import these DTOs from rustfs_storage_api. -pub use rustfs_storage_api::{BucketInfo, BucketOptions, DeleteBucketOptions, MakeBucketOptions, SRBucketDeleteOp}; - #[derive(Debug, Default, Clone)] pub struct HTTPPreconditions { pub if_match: Option, diff --git a/crates/ecstore/tests/storage_api_compat_test.rs b/crates/ecstore/tests/storage_api_compat_test.rs index 4c302aec4..37d0a512c 100644 --- a/crates/ecstore/tests/storage_api_compat_test.rs +++ b/crates/ecstore/tests/storage_api_compat_test.rs @@ -12,31 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -use rustfs_ecstore::store_api::{ - BucketInfo as EcstoreBucketInfo, BucketOptions as EcstoreBucketOptions, MakeBucketOptions as EcstoreMakeBucketOptions, -}; use rustfs_ecstore::{disk::DiskStore, error::Error, store::ECStore}; -use rustfs_storage_api::{ - BucketInfo as ApiBucketInfo, BucketOptions as ApiBucketOptions, MakeBucketOptions as ApiMakeBucketOptions, StorageAdminApi, -}; - -#[test] -fn old_store_api_bucket_dto_path_reexports_storage_api_types() { - let ecstore_bucket: EcstoreBucketInfo = ApiBucketInfo { - name: "photos".to_owned(), - versioning: true, - ..Default::default() - }; - let api_bucket: ApiBucketInfo = ecstore_bucket; - - let ecstore_make: EcstoreMakeBucketOptions = ApiMakeBucketOptions::default(); - let api_options: ApiBucketOptions = EcstoreBucketOptions::default(); - - assert_eq!(api_bucket.name, "photos"); - assert!(api_bucket.versioning); - assert!(!ecstore_make.lock_enabled); - assert!(!api_options.no_metadata); -} +use rustfs_storage_api::StorageAdminApi; fn storage_admin_api_type_name() -> &'static str where diff --git a/crates/heal/src/heal/channel.rs b/crates/heal/src/heal/channel.rs index 322185cbd..9c9f8cf93 100644 --- a/crates/heal/src/heal/channel.rs +++ b/crates/heal/src/heal/channel.rs @@ -420,13 +420,13 @@ mod tests { async fn format_disk(&self, _endpoint: &rustfs_ecstore::disk::endpoint::Endpoint) -> crate::Result<()> { Ok(()) } - async fn get_bucket_info(&self, _bucket: &str) -> crate::Result> { + async fn get_bucket_info(&self, _bucket: &str) -> crate::Result> { Ok(None) } async fn heal_bucket_metadata(&self, _bucket: &str) -> crate::Result<()> { Ok(()) } - async fn list_buckets(&self) -> crate::Result> { + async fn list_buckets(&self) -> crate::Result> { Ok(vec![]) } async fn object_exists(&self, _bucket: &str, _object: &str) -> crate::Result { diff --git a/crates/heal/src/heal/manager.rs b/crates/heal/src/heal/manager.rs index 8785184a6..8b570a0f0 100644 --- a/crates/heal/src/heal/manager.rs +++ b/crates/heal/src/heal/manager.rs @@ -1353,11 +1353,9 @@ mod tests { use crate::heal::storage::HealStorageAPI; use crate::heal::task::{HealOptions, HealPriority, HealRequest, HealType}; use rustfs_common::heal_channel::HealOpts; - use rustfs_ecstore::{ - disk::{DiskStore, endpoint::Endpoint}, - store_api::BucketInfo, - }; + use rustfs_ecstore::disk::{DiskStore, endpoint::Endpoint}; use rustfs_madmin::heal_commands::HealResultItem; + use rustfs_storage_api::BucketInfo; struct MockStorage; diff --git a/crates/heal/src/heal/storage.rs b/crates/heal/src/heal/storage.rs index 4f2efe0e4..1c260a1b3 100644 --- a/crates/heal/src/heal/storage.rs +++ b/crates/heal/src/heal/storage.rs @@ -19,10 +19,10 @@ use rustfs_ecstore::{ disk::{DiskStore, endpoint::Endpoint}, error::StorageError, store::ECStore, - store_api::{BucketInfo, BucketOperations, HealOperations, ListOperations, ObjectIO, ObjectOperations, ObjectOptions}, + store_api::{BucketOperations, HealOperations, ListOperations, ObjectIO, ObjectOperations, ObjectOptions}, }; use rustfs_madmin::heal_commands::HealResultItem; -use rustfs_storage_api::{DiskSetSelector, StorageAdminApi}; +use rustfs_storage_api::{BucketInfo, DiskSetSelector, StorageAdminApi}; use std::sync::Arc; use tracing::{debug, error, info, warn}; diff --git a/crates/heal/src/heal/task.rs b/crates/heal/src/heal/task.rs index 727529d61..54fd933c2 100644 --- a/crates/heal/src/heal/task.rs +++ b/crates/heal/src/heal/task.rs @@ -1282,9 +1282,10 @@ mod tests { use rustfs_ecstore::{ data_usage::DATA_USAGE_CACHE_NAME, disk::{BUCKET_META_PREFIX, DiskStore, RUSTFS_META_BUCKET, endpoint::Endpoint}, - store_api::{BucketInfo, ObjectInfo}, + store_api::ObjectInfo, }; use rustfs_madmin::heal_commands::HealResultItem; + use rustfs_storage_api::BucketInfo; use std::sync::Mutex; #[derive(Default)] diff --git a/crates/heal/tests/heal_bug_fixes_test.rs b/crates/heal/tests/heal_bug_fixes_test.rs index 5374933f4..79f006b2c 100644 --- a/crates/heal/tests/heal_bug_fixes_test.rs +++ b/crates/heal/tests/heal_bug_fixes_test.rs @@ -201,13 +201,13 @@ fn test_heal_task_status_atomic_update() { async fn format_disk(&self, _endpoint: &rustfs_ecstore::disk::endpoint::Endpoint) -> rustfs_heal::Result<()> { Ok(()) } - async fn get_bucket_info(&self, _bucket: &str) -> rustfs_heal::Result> { + async fn get_bucket_info(&self, _bucket: &str) -> rustfs_heal::Result> { Ok(None) } async fn heal_bucket_metadata(&self, _bucket: &str) -> rustfs_heal::Result<()> { Ok(()) } - async fn list_buckets(&self) -> rustfs_heal::Result> { + async fn list_buckets(&self) -> rustfs_heal::Result> { Ok(vec![]) } async fn object_exists(&self, _bucket: &str, _object: &str) -> rustfs_heal::Result { @@ -334,7 +334,7 @@ async fn test_heal_task_transient_object_exists_skip_avoids_recreate() { Ok(()) } - async fn get_bucket_info(&self, _bucket: &str) -> rustfs_heal::Result> { + async fn get_bucket_info(&self, _bucket: &str) -> rustfs_heal::Result> { Ok(None) } @@ -342,7 +342,7 @@ async fn test_heal_task_transient_object_exists_skip_avoids_recreate() { Ok(()) } - async fn list_buckets(&self) -> rustfs_heal::Result> { + async fn list_buckets(&self) -> rustfs_heal::Result> { Ok(Vec::new()) } diff --git a/crates/heal/tests/heal_integration_test.rs b/crates/heal/tests/heal_integration_test.rs index 56711518a..17222eb06 100644 --- a/crates/heal/tests/heal_integration_test.rs +++ b/crates/heal/tests/heal_integration_test.rs @@ -133,7 +133,7 @@ async fn setup_test_env() -> (Vec, Arc, Arc (Vec, Arc) { // init bucket metadata system let buckets_list = ecstore - .list_bucket(&rustfs_ecstore::store_api::BucketOptions { + .list_bucket(&rustfs_storage_api::BucketOptions { no_metadata: true, ..Default::default() }) @@ -198,7 +196,7 @@ async fn setup_isolated_test_env(init_expiry: bool) -> (Vec, Arc)` marker and cleanup-register entry are added. diff --git a/rustfs/src/admin/handlers/account_info.rs b/rustfs/src/admin/handlers/account_info.rs index f6b86fef3..875b1fbcd 100644 --- a/rustfs/src/admin/handlers/account_info.rs +++ b/rustfs/src/admin/handlers/account_info.rs @@ -22,11 +22,11 @@ use matchit::Params; use rustfs_credentials::get_global_action_cred; use rustfs_ecstore::bucket::versioning_sys::BucketVersioningSys; use rustfs_ecstore::new_object_layer_fn; -use rustfs_ecstore::store_api::{BucketOperations, BucketOptions}; +use rustfs_ecstore::store_api::BucketOperations; use rustfs_policy::policy::BucketPolicy; use rustfs_policy::policy::default::DEFAULT_POLICIES; use rustfs_policy::policy::{Args, action::Action, action::S3Action}; -use rustfs_storage_api::StorageAdminApi; +use rustfs_storage_api::{BucketOptions, StorageAdminApi}; use s3s::header::CONTENT_TYPE; use s3s::{Body, S3Error, S3ErrorCode, S3Request, S3Response, S3Result, s3_error}; use serde::Serialize; diff --git a/rustfs/src/admin/handlers/bucket_meta.rs b/rustfs/src/admin/handlers/bucket_meta.rs index 39b938753..f885b9aae 100644 --- a/rustfs/src/admin/handlers/bucket_meta.rs +++ b/rustfs/src/admin/handlers/bucket_meta.rs @@ -24,10 +24,7 @@ use http::{HeaderMap, StatusCode}; use hyper::Method; use matchit::Params; use rustfs_config::MAX_BUCKET_METADATA_IMPORT_SIZE; -use rustfs_ecstore::{ - bucket::utils::{deserialize, serialize}, - store_api::MakeBucketOptions, -}; +use rustfs_ecstore::bucket::utils::{deserialize, serialize}; use rustfs_ecstore::{ bucket::{ metadata::{ @@ -41,12 +38,13 @@ use rustfs_ecstore::{ }, error::StorageError, new_object_layer_fn, - store_api::{BucketOperations, BucketOptions}, + store_api::BucketOperations, }; use rustfs_policy::policy::{ BucketPolicy, action::{Action, AdminAction}, }; +use rustfs_storage_api::{BucketOptions, MakeBucketOptions}; use rustfs_utils::path::{SLASH_SEPARATOR, path_join_buf}; use s3s::{ Body, S3Request, S3Response, S3Result, diff --git a/rustfs/src/admin/handlers/rebalance.rs b/rustfs/src/admin/handlers/rebalance.rs index 42d71ff1a..d9cd43cac 100644 --- a/rustfs/src/admin/handlers/rebalance.rs +++ b/rustfs/src/admin/handlers/rebalance.rs @@ -30,10 +30,9 @@ use rustfs_ecstore::{ notification_sys::get_global_notification_sys, rebalance::{DiskStat, RebalSaveOpt}, store_api::BucketOperations, - store_api::BucketOptions, }; use rustfs_policy::policy::action::{Action, AdminAction}; -use rustfs_storage_api::StorageAdminApi; +use rustfs_storage_api::{BucketOptions, StorageAdminApi}; use s3s::{ Body, S3Request, S3Response, S3Result, header::{CONTENT_LENGTH, CONTENT_TYPE}, diff --git a/rustfs/src/admin/handlers/replication.rs b/rustfs/src/admin/handlers/replication.rs index dc357d276..60304b07b 100644 --- a/rustfs/src/admin/handlers/replication.rs +++ b/rustfs/src/admin/handlers/replication.rs @@ -34,8 +34,9 @@ use rustfs_ecstore::bucket::target::BucketTarget; use rustfs_ecstore::error::StorageError; use rustfs_ecstore::global::global_rustfs_port; use rustfs_ecstore::new_object_layer_fn; -use rustfs_ecstore::store_api::{BucketOperations, BucketOptions}; +use rustfs_ecstore::store_api::BucketOperations; use rustfs_policy::policy::action::{Action, AdminAction}; +use rustfs_storage_api::BucketOptions; use s3s::header::CONTENT_TYPE; use s3s::{Body, S3Error, S3ErrorCode, S3Request, S3Response, S3Result, s3_error}; use std::collections::HashMap; diff --git a/rustfs/src/admin/handlers/site_replication.rs b/rustfs/src/admin/handlers/site_replication.rs index 96d2243d4..6a70db574 100644 --- a/rustfs/src/admin/handlers/site_replication.rs +++ b/rustfs/src/admin/handlers/site_replication.rs @@ -50,7 +50,7 @@ use rustfs_ecstore::config::com::{delete_config, read_config, save_config}; use rustfs_ecstore::error::Error as StorageError; use rustfs_ecstore::global::{get_global_deployment_id, get_global_endpoints_opt, get_global_region, global_rustfs_port}; use rustfs_ecstore::new_object_layer_fn; -use rustfs_ecstore::store_api::{BucketOperations, BucketOptions, DeleteBucketOptions, MakeBucketOptions, SRBucketDeleteOp}; +use rustfs_ecstore::store_api::BucketOperations; use rustfs_iam::error::is_err_no_such_service_account; use rustfs_iam::store::{MappedPolicy, UserType}; use rustfs_iam::sys::{NewServiceAccountOpts, UpdateServiceAccountOpts, get_claims_from_token_with_secret}; @@ -69,6 +69,7 @@ use rustfs_policy::policy::{ }; use rustfs_signer::constants::UNSIGNED_PAYLOAD; use rustfs_signer::sign_v4; +use rustfs_storage_api::{BucketOptions, DeleteBucketOptions, MakeBucketOptions, SRBucketDeleteOp}; use rustfs_tls_runtime::{GlobalPublishedOutboundTlsState, load_global_outbound_tls_generation, load_global_outbound_tls_state}; use rustfs_utils::http::get_source_scheme; use rustls_pki_types::pem::PemObject; diff --git a/rustfs/src/admin/router.rs b/rustfs/src/admin/router.rs index e67087963..63cfa251f 100644 --- a/rustfs/src/admin/router.rs +++ b/rustfs/src/admin/router.rs @@ -59,7 +59,7 @@ use rustfs_ecstore::config::com::read_config_without_migrate; use rustfs_ecstore::global::GLOBAL_BOOT_TIME; use rustfs_ecstore::notification_sys::get_global_notification_sys; use rustfs_ecstore::rpc::PeerRestClient; -use rustfs_ecstore::store_api::{BucketOperations, BucketOptions}; +use rustfs_ecstore::store_api::BucketOperations; use rustfs_ecstore::{ global::{get_global_bucket_monitor, get_global_deployment_id, get_global_region}, new_object_layer_fn, @@ -70,6 +70,7 @@ use rustfs_notify::{Event as NotificationEvent, notification_system}; use rustfs_policy::policy::action::{Action, S3Action}; use rustfs_s3_types::EventName; use rustfs_signer::pre_sign_v4; +use rustfs_storage_api::BucketOptions; use rustfs_utils::http::{ SUFFIX_SOURCE_DELETEMARKER, SUFFIX_SOURCE_MTIME, SUFFIX_SOURCE_REPLICATION_CHECK, SUFFIX_SOURCE_REPLICATION_REQUEST, SUFFIX_SOURCE_VERSION_ID, get_source_scheme, insert_header, diff --git a/rustfs/src/app/bucket_usecase.rs b/rustfs/src/app/bucket_usecase.rs index 716b48d15..d168c647c 100644 --- a/rustfs/src/app/bucket_usecase.rs +++ b/rustfs/src/app/bucket_usecase.rs @@ -55,16 +55,14 @@ use rustfs_ecstore::client::object_api_utils::to_s3s_etag; use rustfs_ecstore::error::StorageError; use rustfs_ecstore::new_object_layer_fn; use rustfs_ecstore::notification_sys::get_global_notification_sys; -use rustfs_ecstore::store_api::{ - BucketOperations, BucketOptions, DeleteBucketOptions, ListObjectVersionsInfo, ListObjectsV2Info, ListOperations, - MakeBucketOptions, ObjectInfo, -}; +use rustfs_ecstore::store_api::{BucketOperations, ListObjectVersionsInfo, ListObjectsV2Info, ListOperations, ObjectInfo}; use rustfs_madmin::{SITE_REPL_API_VERSION, SRBucketMeta}; use rustfs_policy::policy::{ action::{Action, S3Action}, {BucketPolicy, BucketPolicyArgs, Effect, Validator}, }; use rustfs_s3_ops::S3Operation; +use rustfs_storage_api::{BucketOptions, DeleteBucketOptions, MakeBucketOptions}; use rustfs_targets::{ EventName, arn::{ARN, TargetIDError}, diff --git a/rustfs/src/app/capacity_dirty_scope_test.rs b/rustfs/src/app/capacity_dirty_scope_test.rs index 229252315..ea5148ff5 100644 --- a/rustfs/src/app/capacity_dirty_scope_test.rs +++ b/rustfs/src/app/capacity_dirty_scope_test.rs @@ -18,9 +18,10 @@ use rustfs_ecstore::{ disk::endpoint::Endpoint, endpoints::{EndpointServerPools, Endpoints, PoolEndpoints}, store::ECStore, - store_api::{BucketOperations, BucketOptions, HealOperations, MakeBucketOptions, ObjectIO, ObjectOptions, PutObjReader}, + store_api::{BucketOperations, HealOperations, ObjectIO, ObjectOptions, PutObjReader}, }; use rustfs_object_capacity::capacity_manager::{HybridStrategyConfig, create_isolated_manager}; +use rustfs_storage_api::{BucketOptions, MakeBucketOptions}; use serial_test::serial; use std::{ collections::HashSet, diff --git a/rustfs/src/app/lifecycle_transition_api_test.rs b/rustfs/src/app/lifecycle_transition_api_test.rs index c52294ffa..ead30cbd5 100644 --- a/rustfs/src/app/lifecycle_transition_api_test.rs +++ b/rustfs/src/app/lifecycle_transition_api_test.rs @@ -29,16 +29,14 @@ use rustfs_ecstore::{ endpoints::{EndpointServerPools, Endpoints, PoolEndpoints}, global::GLOBAL_TierConfigMgr, store::ECStore, - store_api::{ - BucketOperations, BucketOptions, ListOperations, MakeBucketOptions, MultipartOperations, ObjectIO, ObjectOperations, - ObjectOptions, PutObjReader, - }, + store_api::{BucketOperations, ListOperations, MultipartOperations, ObjectIO, ObjectOperations, ObjectOptions, PutObjReader}, tier::{ tier_config::{TierConfig, TierType}, warm_backend::{WarmBackend, WarmBackendGetOpts}, }, }; use rustfs_object_capacity::capacity_manager::{HybridStrategyConfig, create_isolated_manager}; +use rustfs_storage_api::{BucketOptions, MakeBucketOptions}; use rustfs_utils::http::{SUFFIX_FORCE_DELETE, insert_header}; use s3s::{S3Request, dto::*}; use serial_test::serial; diff --git a/rustfs/src/embedded.rs b/rustfs/src/embedded.rs index 31b5902ef..5d99e3e69 100644 --- a/rustfs/src/embedded.rs +++ b/rustfs/src/embedded.rs @@ -70,10 +70,10 @@ use rustfs_ecstore::{ store::ECStore, store::init_local_disks, store_api::BucketOperations, - store_api::BucketOptions, update_erasure_type, }; use rustfs_obs::{init_obs, set_global_guard}; +use rustfs_storage_api::BucketOptions; use rustfs_utils::net::parse_and_resolve_address; use rustls::crypto::aws_lc_rs::default_provider; use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; diff --git a/rustfs/src/main.rs b/rustfs/src/main.rs index 2851afae5..ab4cecf31 100644 --- a/rustfs/src/main.rs +++ b/rustfs/src/main.rs @@ -51,7 +51,6 @@ use rustfs_ecstore::{ store::init_local_disks, store::prewarm_local_disk_id_map, store_api::BucketOperations, - store_api::BucketOptions, update_erasure_type, }; use rustfs_heal::{ @@ -60,6 +59,7 @@ use rustfs_heal::{ use rustfs_iam::init_oidc_sys; use rustfs_obs::{init_metrics_runtime, init_obs, set_global_guard}; use rustfs_scanner::init_data_scanner; +use rustfs_storage_api::BucketOptions; use rustfs_utils::{ ExternalEnvCompatReport, apply_external_env_compat, get_env_bool_with_aliases, net::parse_and_resolve_address, }; diff --git a/rustfs/src/storage/ecfs.rs b/rustfs/src/storage/ecfs.rs index 3d3c89c72..74008988a 100644 --- a/rustfs/src/storage/ecfs.rs +++ b/rustfs/src/storage/ecfs.rs @@ -40,10 +40,11 @@ use rustfs_ecstore::{ }, error::{StorageError, is_err_bucket_not_found, is_err_object_not_found, is_err_version_not_found}, new_object_layer_fn, - store_api::{BucketOperations, BucketOptions, ObjectLockRetentionOptions, ObjectOperations, ObjectOptions}, + store_api::{BucketOperations, ObjectLockRetentionOptions, ObjectOperations, ObjectOptions}, }; use rustfs_io_metrics::record_s3_op; use rustfs_s3_ops::S3Operation; +use rustfs_storage_api::BucketOptions; use rustfs_targets::EventName; use rustfs_utils::http::headers::{ AMZ_OBJECT_LOCK_LEGAL_HOLD_LOWER, AMZ_OBJECT_LOCK_MODE_LOWER, AMZ_OBJECT_LOCK_RETAIN_UNTIL_DATE_LOWER, diff --git a/rustfs/src/storage/ecfs_extend.rs b/rustfs/src/storage/ecfs_extend.rs index 63ae8cb6a..de0b41fd6 100644 --- a/rustfs/src/storage/ecfs_extend.rs +++ b/rustfs/src/storage/ecfs_extend.rs @@ -25,7 +25,8 @@ use rustfs_ecstore::bucket::object_lock::objectlock_sys; use rustfs_ecstore::bucket::replication::ReplicationConfigurationExt; use rustfs_ecstore::error::StorageError; use rustfs_ecstore::new_object_layer_fn; -use rustfs_ecstore::store_api::{BucketOperations, BucketOptions, ObjectInfo, ObjectToDelete}; +use rustfs_ecstore::store_api::{BucketOperations, ObjectInfo, ObjectToDelete}; +use rustfs_storage_api::BucketOptions; use rustfs_targets::EventName; use rustfs_targets::arn::{TargetID, TargetIDError}; use rustfs_utils::http::{ diff --git a/rustfs/src/storage/rpc/node_service.rs b/rustfs/src/storage/rpc/node_service.rs index e3f9e5db6..02e287722 100644 --- a/rustfs/src/storage/rpc/node_service.rs +++ b/rustfs/src/storage/rpc/node_service.rs @@ -37,7 +37,6 @@ use rustfs_ecstore::{ SERVICE_SIGNAL_RELOAD_DYNAMIC, }, store::{all_local_disk_path, find_local_disk_by_ref}, - store_api::{BucketOptions, DeleteBucketOptions, MakeBucketOptions}, }; use rustfs_filemeta::{FileInfo, MetacacheReader}; use rustfs_iam::{get_global_iam_sys, store::UserType}; @@ -50,6 +49,7 @@ use rustfs_protos::{ models::{PingBody, PingBodyBuilder}, proto_gen::node_service::{node_service_server::NodeService as Node, *}, }; +use rustfs_storage_api::{BucketOptions, DeleteBucketOptions, MakeBucketOptions}; use serde::Deserialize; use std::{collections::HashMap, io::Cursor, pin::Pin, sync::Arc}; use tokio::spawn; diff --git a/rustfs/src/storage/s3_api/bucket.rs b/rustfs/src/storage/s3_api/bucket.rs index 626b5bed0..6660a1c64 100644 --- a/rustfs/src/storage/s3_api/bucket.rs +++ b/rustfs/src/storage/s3_api/bucket.rs @@ -15,7 +15,8 @@ use crate::storage::s3_api::common::rustfs_owner; use percent_encoding::percent_decode_str; use rustfs_ecstore::client::object_api_utils::to_s3s_etag; -use rustfs_ecstore::store_api::{BucketInfo, ListObjectVersionsInfo, ListObjectsV2Info}; +use rustfs_ecstore::store_api::{ListObjectVersionsInfo, ListObjectsV2Info}; +use rustfs_storage_api::BucketInfo; use s3s::dto::{ Bucket, CommonPrefix, DeleteMarkerEntry, EncodingType, ListBucketsOutput, ListObjectVersionsOutput, ListObjectsOutput, ListObjectsV2Output, Object, ObjectStorageClass, ObjectVersion, ObjectVersionStorageClass, Timestamp, @@ -387,7 +388,8 @@ mod tests { build_list_objects_v2_output, parse_list_object_versions_params, parse_list_objects_v2_params, }; use crate::storage::s3_api::common::rustfs_owner; - use rustfs_ecstore::store_api::{BucketInfo, ListObjectVersionsInfo, ListObjectsV2Info, ObjectInfo}; + use rustfs_ecstore::store_api::{ListObjectVersionsInfo, ListObjectsV2Info, ObjectInfo}; + use rustfs_storage_api::BucketInfo; use s3s::S3ErrorCode; use s3s::dto::{CommonPrefix, EncodingType, ListObjectsV2Output, Object}; use time::OffsetDateTime;