mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-11 23:56:53 +00:00
@@ -1650,13 +1650,18 @@ pub fn get_concurrency_manager() -> &'static ConcurrencyManager {
|
||||
&CONCURRENCY_MANAGER
|
||||
}
|
||||
|
||||
/// Testing helper to reset the global request counter.
|
||||
pub(crate) fn reset_active_get_requests() {
|
||||
ACTIVE_GET_REQUESTS.store(0, Ordering::Relaxed);
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_concurrent_request_tracking() {
|
||||
// Ensure we start from a clean state
|
||||
reset_active_get_requests();
|
||||
assert_eq!(GetObjectGuard::concurrent_requests(), 0);
|
||||
|
||||
let _guard1 = GetObjectGuard::new();
|
||||
|
||||
@@ -532,6 +532,8 @@ mod tests {
|
||||
/// Test advanced buffer sizing with file patterns
|
||||
#[tokio::test]
|
||||
async fn test_advanced_buffer_sizing() {
|
||||
crate::storage::concurrency::reset_active_get_requests();
|
||||
|
||||
let base_buffer = 256 * KI_B; // 256KB base
|
||||
|
||||
// Test small file optimization
|
||||
|
||||
@@ -2454,6 +2454,13 @@ impl S3 for FS {
|
||||
.map(|v| SSECustomerAlgorithm::from(v.clone()));
|
||||
let sse_customer_key_md5 = metadata_map.get("x-amz-server-side-encryption-customer-key-md5").cloned();
|
||||
let ssekms_key_id = metadata_map.get("x-amz-server-side-encryption-aws-kms-key-id").cloned();
|
||||
// Prefer explicit storage_class from object info; fall back to persisted metadata header.
|
||||
let storage_class = info
|
||||
.storage_class
|
||||
.clone()
|
||||
.or_else(|| metadata_map.get("x-amz-storage-class").cloned())
|
||||
.filter(|s| !s.is_empty())
|
||||
.map(ObjectStorageClass::from);
|
||||
|
||||
let mut checksum_crc32 = None;
|
||||
let mut checksum_crc32c = None;
|
||||
@@ -2507,6 +2514,7 @@ impl S3 for FS {
|
||||
checksum_sha256,
|
||||
checksum_crc64nvme,
|
||||
checksum_type,
|
||||
storage_class,
|
||||
// metadata: object_metadata,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user