fix(filemeta): support legacy xl.meta compatibility (#2304)

This commit is contained in:
weisd
2026-03-27 13:42:06 +08:00
committed by GitHub
parent af46a61fde
commit 5e21c398f5
8 changed files with 1205 additions and 19 deletions
+4 -4
View File
@@ -170,7 +170,7 @@ impl FileMeta {
// Parse meta
if !meta.is_empty() {
let (versions_len, _, meta_ver, meta) = Self::decode_xl_headers(meta).map_err(|e| {
let (versions_len, header_ver, meta_ver, meta) = Self::decode_xl_headers(meta).map_err(|e| {
error!("failed to decode XL headers: {}", e);
e
})?;
@@ -193,7 +193,7 @@ impl FileMeta {
cur.read_exact(&mut header_buf)?;
let mut ver = FileMetaShallowVersion::default();
ver.header.unmarshal_msg(&header_buf).map_err(|e| {
ver.header.unmarshal_v(header_ver, &header_buf).map_err(|e| {
error!("failed to unmarshal version header: {}", e);
e
})?;
@@ -267,7 +267,7 @@ impl FileMeta {
pub fn is_latest_delete_marker(buf: &[u8]) -> bool {
let header = Self::decode_xl_headers(buf).ok();
if let Some((versions, _hdr_v, _meta_v, meta)) = header {
if let Some((versions, hdr_v, _meta_v, meta)) = header {
if versions == 0 {
return false;
}
@@ -276,7 +276,7 @@ impl FileMeta {
let _ = Self::decode_versions(meta, versions, |_: usize, hdr: &[u8], _: &[u8]| {
let mut header = FileMetaVersionHeader::default();
if header.unmarshal_msg(hdr).is_err() {
if header.unmarshal_v(hdr_v, hdr).is_err() {
return Err(Error::DoneForNow);
}