add delete_bucket opts

This commit is contained in:
weisd
2024-09-13 13:30:10 +08:00
parent dc6f485aca
commit 7f35685b35
7 changed files with 66 additions and 20 deletions
+3
View File
@@ -31,6 +31,9 @@ pub enum DiskError {
#[error("volume not found")]
VolumeNotFound,
#[error("volume not empty")]
VolumeNotEmpty,
}
impl DiskError {
+14 -1
View File
@@ -972,7 +972,20 @@ impl DiskAPI for LocalDisk {
let p = self.get_bucket_path(volume)?;
// TODO: 不能用递归删除,如果目录下面有文件,返回errVolumeNotEmpty
fs::remove_dir_all(&p).await?;
if let Err(err) = fs::remove_dir_all(&p).await {
match err.kind() {
ErrorKind::NotFound => (),
// ErrorKind::DirectoryNotEmpty => (),
kind => {
if kind.to_string() == "directory not empty" {
return Err(Error::new(DiskError::VolumeNotEmpty));
}
return Err(Error::from(err));
}
}
}
Ok(())
}