You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by me...@apache.org on 2026/01/06 15:37:47 UTC
(opendal) 01/01: feat(services/hdfs): add delete with support for hdfs
This is an automated email from the ASF dual-hosted git repository.
meteorgan pushed a commit to branch hdfs-recursive-delete
in repository https://gitbox.apache.org/repos/asf/opendal.git
commit 2a636e01cfdc67ab618891867e157e8858ad8970
Author: meteorgan <me...@gmail.com>
AuthorDate: Tue Jan 6 23:36:50 2026 +0800
feat(services/hdfs): add delete with support for hdfs
---
core/services/hdfs/src/backend.rs | 1 +
core/services/hdfs/src/deleter.rs | 8 ++++++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/core/services/hdfs/src/backend.rs b/core/services/hdfs/src/backend.rs
index 5b00b59f8..49ae41337 100644
--- a/core/services/hdfs/src/backend.rs
+++ b/core/services/hdfs/src/backend.rs
@@ -169,6 +169,7 @@ impl Builder for HdfsBuilder {
create_dir: true,
delete: true,
+ delete_with_recursive: true,
list: true,
diff --git a/core/services/hdfs/src/deleter.rs b/core/services/hdfs/src/deleter.rs
index eb0eeb8a8..57fd56148 100644
--- a/core/services/hdfs/src/deleter.rs
+++ b/core/services/hdfs/src/deleter.rs
@@ -33,7 +33,7 @@ impl HdfsDeleter {
}
impl oio::OneShotDelete for HdfsDeleter {
- async fn delete_once(&self, path: String, _: OpDelete) -> Result<()> {
+ async fn delete_once(&self, path: String, args: OpDelete) -> Result<()> {
let p = build_rooted_abs_path(&self.core.root, &path);
let meta = self.core.client.metadata(&p);
@@ -50,7 +50,11 @@ impl oio::OneShotDelete for HdfsDeleter {
let meta = meta.ok().unwrap();
let result = if meta.is_dir() {
- self.core.client.remove_dir(&p)
+ if args.recursive() {
+ self.core.client.remove_dir_all(&p)
+ } else {
+ self.core.client.remove_dir(&p)
+ }
} else {
self.core.client.remove_file(&p)
};