mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-22 12:26:37 +00:00
fix check file not found use is_err_object_not_found
This commit is contained in:
@@ -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)]
|
#[derive(Debug, thiserror::Error)]
|
||||||
pub enum ConfigError {
|
pub enum ConfigError {
|
||||||
@@ -20,6 +20,8 @@ pub fn is_not_found(err: &Error) -> bool {
|
|||||||
ConfigError::is_not_found(e)
|
ConfigError::is_not_found(e)
|
||||||
} else if let Some(e) = err.downcast_ref::<disk::error::DiskError>() {
|
} else if let Some(e) = err.downcast_ref::<disk::error::DiskError>() {
|
||||||
matches!(e, disk::error::DiskError::FileNotFound)
|
matches!(e, disk::error::DiskError::FileNotFound)
|
||||||
|
} else if is_err_object_not_found(err) {
|
||||||
|
return true;
|
||||||
} else {
|
} else {
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ use protos::{
|
|||||||
CheckPartsRequest, DeletePathsRequest, DeleteRequest, DeleteVersionRequest, DeleteVersionsRequest, DeleteVolumeRequest,
|
CheckPartsRequest, DeletePathsRequest, DeleteRequest, DeleteVersionRequest, DeleteVersionsRequest, DeleteVolumeRequest,
|
||||||
DiskInfoRequest, ListDirRequest, ListVolumesRequest, MakeVolumeRequest, MakeVolumesRequest, NsScannerRequest,
|
DiskInfoRequest, ListDirRequest, ListVolumesRequest, MakeVolumeRequest, MakeVolumesRequest, NsScannerRequest,
|
||||||
ReadAllRequest, ReadMultipleRequest, ReadVersionRequest, ReadXlRequest, RenameDataRequest, RenameFileRequst,
|
ReadAllRequest, ReadMultipleRequest, ReadVersionRequest, ReadXlRequest, RenameDataRequest, RenameFileRequst,
|
||||||
StatVolumeRequest, UpdateMetadataRequest, VerifyFileRequest, WalkDirRequest, WriteAllRequest, WriteMetadataRequest,
|
StatVolumeRequest, UpdateMetadataRequest, VerifyFileRequest, WriteAllRequest, WriteMetadataRequest,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
use tokio::{
|
use tokio::{
|
||||||
@@ -21,8 +21,8 @@ use uuid::Uuid;
|
|||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
endpoint::Endpoint, CheckPartsResp, DeleteOptions, DiskAPI, DiskInfo, DiskInfoOptions, DiskLocation, DiskOption,
|
endpoint::Endpoint, CheckPartsResp, DeleteOptions, DiskAPI, DiskInfo, DiskInfoOptions, DiskLocation, DiskOption,
|
||||||
FileInfoVersions, FileReader, FileWriter, MetaCacheEntry, ReadMultipleReq, ReadMultipleResp, ReadOptions, RemoteFileReader,
|
FileInfoVersions, FileReader, FileWriter, ReadMultipleReq, ReadMultipleResp, ReadOptions, RemoteFileReader, RemoteFileWriter,
|
||||||
RemoteFileWriter, RenameDataResp, UpdateMetadataOpts, VolumeInfo, WalkDirOptions,
|
RenameDataResp, UpdateMetadataOpts, VolumeInfo, WalkDirOptions,
|
||||||
};
|
};
|
||||||
use crate::{
|
use crate::{
|
||||||
disk::error::DiskError,
|
disk::error::DiskError,
|
||||||
|
|||||||
+2
-1
@@ -7,6 +7,7 @@ use std::{
|
|||||||
time::Duration,
|
time::Duration,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
use ecstore::store_err::is_err_object_not_found;
|
||||||
use log::debug;
|
use log::debug;
|
||||||
use time::OffsetDateTime;
|
use time::OffsetDateTime;
|
||||||
use tokio::{
|
use tokio::{
|
||||||
@@ -113,7 +114,7 @@ where
|
|||||||
async fn save_iam_formatter(self: Arc<Self>) -> crate::Result<()> {
|
async fn save_iam_formatter(self: Arc<Self>) -> crate::Result<()> {
|
||||||
match self.api.load_iam_config::<Format>(Format::PATH).await {
|
match self.api.load_iam_config::<Format>(Format::PATH).await {
|
||||||
Ok((format, _)) if format.version >= 1 => return Ok(()),
|
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));
|
return Err(Error::EcstoreError(e));
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
|
|||||||
@@ -60,8 +60,13 @@ impl ObjectStore {
|
|||||||
|
|
||||||
match items {
|
match items {
|
||||||
Ok(items) => Result::<_, crate::Error>::Ok(items.prefixes),
|
Ok(items) => Result::<_, crate::Error>::Ok(items.prefixes),
|
||||||
Err(e) if is_not_found(&e) => Result::<_, crate::Error>::Ok(vec![]),
|
Err(e) => {
|
||||||
Err(e) => Err(Error::StringError(format!("list {prefix} failed, err: {e:?}"))),
|
if is_not_found(&e) {
|
||||||
|
Result::<_, crate::Error>::Ok(vec![])
|
||||||
|
} else {
|
||||||
|
Err(Error::StringError(format!("list {prefix} failed, err: {e:?}")))
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user