refactor: address quality findings

This commit is contained in:
2026-06-28 13:04:53 +08:00
parent b202d7b231
commit 02716d3ccd
4 changed files with 120 additions and 78 deletions
+11 -2
View File
@@ -46,7 +46,8 @@ impl FileSystemCasRepository {
.await
{
if !existed {
let _ = self.storage.delete(&stored_hash).await;
self.delete_new_object_after_metadata_failure(&stored_hash)
.await?;
}
return Err(error);
}
@@ -58,13 +59,21 @@ impl FileSystemCasRepository {
}
Err(error) => {
if !existed {
let _ = self.storage.delete(&stored_hash).await;
self.delete_new_object_after_metadata_failure(&stored_hash)
.await?;
}
Err(error)
}
}
}
async fn delete_new_object_after_metadata_failure(&self, hash: &Hash) -> Result<()> {
match self.storage.delete(hash).await {
Ok(()) | Err(CasError::ObjectNotFound(_)) => Ok(()),
Err(error) => Err(error),
}
}
/// 读取对象并验证 Hash。
pub async fn get(&self, hash: &Hash) -> Result<Vec<u8>> {
self.storage.get(hash).await