This is an automated email from the ASF dual-hosted git repository. xuanwo pushed a commit to branch fix-stat in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git
commit fadf4e6147773d8d106c764b1bfb66e5dfd669a2 Author: Xuanwo <[email protected]> AuthorDate: Tue Nov 21 16:39:35 2023 +0800 Fix kv adapter Signed-off-by: Xuanwo <[email protected]> --- core/src/raw/adapters/kv/backend.rs | 4 ++-- core/src/raw/adapters/typed_kv/backend.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/raw/adapters/kv/backend.rs b/core/src/raw/adapters/kv/backend.rs index 856f65f1f..ed821bc10 100644 --- a/core/src/raw/adapters/kv/backend.rs +++ b/core/src/raw/adapters/kv/backend.rs @@ -160,7 +160,7 @@ impl<S: Adapter> Accessor for Backend<S> { async fn stat(&self, path: &str, _: OpStat) -> Result<RpStat> { let p = build_abs_path(&self.root, path); - if p.is_empty() || p.ends_with('/') { + if p == build_abs_path(&self.root, "") { Ok(RpStat::new(Metadata::new(EntryMode::DIR))) } else { let bs = self.kv.get(&p).await?; @@ -176,7 +176,7 @@ impl<S: Adapter> Accessor for Backend<S> { fn blocking_stat(&self, path: &str, _: OpStat) -> Result<RpStat> { let p = build_abs_path(&self.root, path); - if p.is_empty() || p.ends_with('/') { + if p == build_abs_path(&self.root, "") { Ok(RpStat::new(Metadata::new(EntryMode::DIR))) } else { let bs = self.kv.blocking_get(&p)?; diff --git a/core/src/raw/adapters/typed_kv/backend.rs b/core/src/raw/adapters/typed_kv/backend.rs index bf59510d4..e3c620010 100644 --- a/core/src/raw/adapters/typed_kv/backend.rs +++ b/core/src/raw/adapters/typed_kv/backend.rs @@ -167,7 +167,7 @@ impl<S: Adapter> Accessor for Backend<S> { async fn stat(&self, path: &str, _: OpStat) -> Result<RpStat> { let p = build_abs_path(&self.root, path); - if p.is_empty() || p.ends_with('/') { + if p == build_abs_path(&self.root, "") { Ok(RpStat::new(Metadata::new(EntryMode::DIR))) } else { let bs = self.kv.get(&p).await?; @@ -181,7 +181,7 @@ impl<S: Adapter> Accessor for Backend<S> { fn blocking_stat(&self, path: &str, _: OpStat) -> Result<RpStat> { let p = build_abs_path(&self.root, path); - if p.is_empty() || p.ends_with('/') { + if p == build_abs_path(&self.root, "") { Ok(RpStat::new(Metadata::new(EntryMode::DIR))) } else { let bs = self.kv.blocking_get(&p)?;
