From 3902a2df9d4aa003f9b884af0d625eda2d8adb25 Mon Sep 17 00:00:00 2001 From: suyanhanx Date: Thu, 27 Apr 2023 14:59:50 +0800 Subject: [PATCH] enable read for webdav Signed-off-by: suyanhanx --- core/src/services/webdav/backend.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/src/services/webdav/backend.rs b/core/src/services/webdav/backend.rs index 4a073d6e9fea..1b0105e6b23e 100644 --- a/core/src/services/webdav/backend.rs +++ b/core/src/services/webdav/backend.rs @@ -267,12 +267,18 @@ impl Accessor for WebdavBackend { ma.set_scheme(Scheme::Webdav) .set_root(&self.root) .set_capability(Capability { + stat: true, + read: true, read_can_next: true, + read_with_if_match: true, + read_with_if_none_match: true, + write: true, list: true, copy: true, rename: true, + ..Default::default() }); @@ -430,6 +436,8 @@ impl WebdavBackend { &self, path: &str, range: BytesRange, + if_match: Option<&str>, + if_none_match: Option<&str>, ) -> Result> { let p = build_rooted_abs_path(&self.root, path); @@ -445,6 +453,13 @@ impl WebdavBackend { req = req.header(header::RANGE, range.to_header()); } + if let Some(etag) = if_match { + req = req.header(header::IF_MATCH, etag); + } + if let Some(etag) = if_none_match { + req = req.header(header::IF_NONE_MATCH, etag); + } + let req = req .body(AsyncBody::Empty) .map_err(new_request_build_error)?;