Feature up/ilm (#470)

* fix delete-marker expiration. add api_restore.

* time retry object upload

* lock file

* make fmt

* restore object

* serde-rs-xml -> quick-xml

* scanner_item prefix object_name

* object_path

* object_name

* fi version_purge_status

* old_dir None

Co-authored-by: houseme <housemecn@gmail.com>
This commit is contained in:
likewu
2025-09-01 16:11:28 +08:00
committed by GitHub
parent 5264503e47
commit 7462be983a
9 changed files with 575 additions and 56 deletions
+16 -4
View File
@@ -540,6 +540,15 @@ impl FileMeta {
}
}
let mut update_version = fi.mark_deleted;
/*if fi.version_purge_status().is_empty()
{
update_version = fi.mark_deleted;
}*/
if fi.transition_status == TRANSITION_COMPLETE {
update_version = false;
}
for (i, ver) in self.versions.iter().enumerate() {
if ver.header.version_id != fi.version_id {
continue;
@@ -557,12 +566,14 @@ impl FileMeta {
return Ok(None);
}
VersionType::Object => {
let v = self.get_idx(i)?;
if update_version && !fi.deleted {
let v = self.get_idx(i)?;
self.versions.remove(i);
self.versions.remove(i);
let a = v.object.map(|v| v.data_dir).unwrap_or_default();
return Ok(a);
let a = v.object.map(|v| v.data_dir).unwrap_or_default();
return Ok(a);
}
}
}
}
@@ -581,6 +592,7 @@ impl FileMeta {
ver.object.as_mut().unwrap().set_transition(fi);
ver.object.as_mut().unwrap().reset_inline_data();
self.set_idx(i, ver.clone())?;
return Ok(None);
} else {
let vers = self.versions[i + 1..].to_vec();
self.versions.extend(vers.iter().cloned());