fix check file not found use is_err_object_not_found

This commit is contained in:
weisd
2024-12-23 15:44:24 +08:00
parent a40c2e2978
commit b46a78fb63
4 changed files with 15 additions and 7 deletions
+3 -1
View File
@@ -1,4 +1,4 @@
use crate::{disk, error::Error};
use crate::{disk, error::Error, store_err::is_err_object_not_found};
#[derive(Debug, thiserror::Error)]
pub enum ConfigError {
@@ -20,6 +20,8 @@ pub fn is_not_found(err: &Error) -> bool {
ConfigError::is_not_found(e)
} else if let Some(e) = err.downcast_ref::<disk::error::DiskError>() {
matches!(e, disk::error::DiskError::FileNotFound)
} else if is_err_object_not_found(err) {
return true;
} else {
false
}
+3 -3
View File
@@ -7,7 +7,7 @@ use protos::{
CheckPartsRequest, DeletePathsRequest, DeleteRequest, DeleteVersionRequest, DeleteVersionsRequest, DeleteVolumeRequest,
DiskInfoRequest, ListDirRequest, ListVolumesRequest, MakeVolumeRequest, MakeVolumesRequest, NsScannerRequest,
ReadAllRequest, ReadMultipleRequest, ReadVersionRequest, ReadXlRequest, RenameDataRequest, RenameFileRequst,
StatVolumeRequest, UpdateMetadataRequest, VerifyFileRequest, WalkDirRequest, WriteAllRequest, WriteMetadataRequest,
StatVolumeRequest, UpdateMetadataRequest, VerifyFileRequest, WriteAllRequest, WriteMetadataRequest,
},
};
use tokio::{
@@ -21,8 +21,8 @@ use uuid::Uuid;
use super::{
endpoint::Endpoint, CheckPartsResp, DeleteOptions, DiskAPI, DiskInfo, DiskInfoOptions, DiskLocation, DiskOption,
FileInfoVersions, FileReader, FileWriter, MetaCacheEntry, ReadMultipleReq, ReadMultipleResp, ReadOptions, RemoteFileReader,
RemoteFileWriter, RenameDataResp, UpdateMetadataOpts, VolumeInfo, WalkDirOptions,
FileInfoVersions, FileReader, FileWriter, ReadMultipleReq, ReadMultipleResp, ReadOptions, RemoteFileReader, RemoteFileWriter,
RenameDataResp, UpdateMetadataOpts, VolumeInfo, WalkDirOptions,
};
use crate::{
disk::error::DiskError,
+2 -1
View File
@@ -7,6 +7,7 @@ use std::{
time::Duration,
};
use ecstore::store_err::is_err_object_not_found;
use log::debug;
use time::OffsetDateTime;
use tokio::{
@@ -113,7 +114,7 @@ where
async fn save_iam_formatter(self: Arc<Self>) -> crate::Result<()> {
match self.api.load_iam_config::<Format>(Format::PATH).await {
Ok((format, _)) if format.version >= 1 => return Ok(()),
Err(Error::EcstoreError(e)) if !ecstore::disk::error::is_err_file_not_found(&e) => {
Err(Error::EcstoreError(e)) if !is_err_object_not_found(&e) => {
return Err(Error::EcstoreError(e));
}
_ => {}
+7 -2
View File
@@ -60,8 +60,13 @@ impl ObjectStore {
match items {
Ok(items) => Result::<_, crate::Error>::Ok(items.prefixes),
Err(e) if is_not_found(&e) => Result::<_, crate::Error>::Ok(vec![]),
Err(e) => Err(Error::StringError(format!("list {prefix} failed, err: {e:?}"))),
Err(e) => {
if is_not_found(&e) {
Result::<_, crate::Error>::Ok(vec![])
} else {
Err(Error::StringError(format!("list {prefix} failed, err: {e:?}")))
}
}
}
});
}