This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git
The following commit(s) were added to refs/heads/main by this push:
new db2308abe feat(services/hdfs): add delete with recursive support for
hdfs (#7136)
db2308abe is described below
commit db2308abe8c77577faec9f4e1a930d7c01e10363
Author: meteorgan <[email protected]>
AuthorDate: Mon Jan 12 22:03:13 2026 +0800
feat(services/hdfs): add delete with recursive support for hdfs (#7136)
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)
};