From 8309d2f8bea04ff62e171f51b6adb077d1fcf96b Mon Sep 17 00:00:00 2001 From: Nugine Date: Sun, 15 Jun 2025 21:01:38 +0800 Subject: [PATCH] refactor(filemeta): `FileInfo` `data` use `Bytes` --- crates/filemeta/src/fileinfo.rs | 4 ++-- crates/filemeta/src/filemeta.rs | 7 +++++-- ecstore/src/set_disk.rs | 5 +++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/crates/filemeta/src/fileinfo.rs b/crates/filemeta/src/fileinfo.rs index b9d754965..69ccb34ce 100644 --- a/crates/filemeta/src/fileinfo.rs +++ b/crates/filemeta/src/fileinfo.rs @@ -168,13 +168,13 @@ pub struct FileInfo { pub mark_deleted: bool, // ReplicationState - Internal replication state to be passed back in ObjectInfo // pub replication_state: Option, // TODO: implement ReplicationState - pub data: Option>, + pub data: Option, pub num_versions: usize, pub successor_mod_time: Option, pub fresh: bool, pub idx: usize, // Combined checksum when object was uploaded - pub checksum: Option>, + pub checksum: Option, pub versioned: bool, } diff --git a/crates/filemeta/src/filemeta.rs b/crates/filemeta/src/filemeta.rs index 5ef8d3e2b..a9c5d86b0 100644 --- a/crates/filemeta/src/filemeta.rs +++ b/crates/filemeta/src/filemeta.rs @@ -419,7 +419,7 @@ impl FileMeta { if let Some(ref data) = fi.data { let key = vid.unwrap_or_default().to_string(); - self.data.replace(&key, data.clone())?; + self.data.replace(&key, data.to_vec())?; } let version = FileMetaVersion::from(fi); @@ -543,7 +543,10 @@ impl FileMeta { } if read_data { - fi.data = self.data.find(fi.version_id.unwrap_or_default().to_string().as_str())?; + fi.data = self + .data + .find(fi.version_id.unwrap_or_default().to_string().as_str())? + .map(bytes::Bytes::from); } fi.num_versions = self.versions.len(); diff --git a/ecstore/src/set_disk.rs b/ecstore/src/set_disk.rs index 0efbce668..05fa3893b 100644 --- a/ecstore/src/set_disk.rs +++ b/ecstore/src/set_disk.rs @@ -2594,7 +2594,8 @@ impl SetDisks { // if let Some(w) = writer.as_any().downcast_ref::() { // parts_metadata[index].data = Some(w.inline_data().to_vec()); // } - parts_metadata[index].data = Some(writer.into_inline_data().unwrap_or_default()); + parts_metadata[index].data = + Some(writer.into_inline_data().map(bytes::Bytes::from).unwrap_or_default()); } parts_metadata[index].set_inline_data(); } else { @@ -3920,7 +3921,7 @@ impl ObjectIO for SetDisks { for (i, fi) in parts_metadatas.iter_mut().enumerate() { if is_inline_buffer { if let Some(writer) = writers[i].take() { - fi.data = Some(writer.into_inline_data().unwrap_or_default()); + fi.data = Some(writer.into_inline_data().map(bytes::Bytes::from).unwrap_or_default()); } }