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 68c99b3de refactor(services/azdls): Refactor raw request send in 
writer and bac… (#6109)
68c99b3de is described below

commit 68c99b3deea881e84d7007b4263fcc46dd41b43f
Author: Jorge Hermo <[email protected]>
AuthorDate: Sun Apr 27 15:56:27 2025 +0200

    refactor(services/azdls): Refactor raw request send in writer and bac… 
(#6109)
    
    refactor(services/azdls): Refactor raw request send in writer and backend
---
 core/src/services/azdls/backend.rs | 15 ++++----------
 core/src/services/azdls/core.rs    | 40 +++++++++++++++++++++-----------------
 core/src/services/azdls/writer.rs  | 40 +++++++++++++-------------------------
 3 files changed, 40 insertions(+), 55 deletions(-)

diff --git a/core/src/services/azdls/backend.rs 
b/core/src/services/azdls/backend.rs
index 9d50bc718..67307dd7c 100644
--- a/core/src/services/azdls/backend.rs
+++ b/core/src/services/azdls/backend.rs
@@ -271,19 +271,12 @@ impl Access for AzdlsBackend {
     }
 
     async fn create_dir(&self, path: &str, _: OpCreateDir) -> 
Result<RpCreateDir> {
-        let mut req = self.core.azdls_create_request(
-            path,
-            "directory",
-            &OpWrite::default(),
-            Buffer::new(),
-        )?;
-
-        self.core.sign(&mut req).await?;
-
-        let resp = self.core.send(req).await?;
+        let resp = self
+            .core
+            .azdls_create(path, "directory", &OpWrite::default(), 
Buffer::new())
+            .await?;
 
         let status = resp.status();
-
         match status {
             StatusCode::CREATED | StatusCode::OK => Ok(RpCreateDir::default()),
             _ => Err(parse_error(resp)),
diff --git a/core/src/services/azdls/core.rs b/core/src/services/azdls/core.rs
index 165d3b5a7..2e0878359 100644
--- a/core/src/services/azdls/core.rs
+++ b/core/src/services/azdls/core.rs
@@ -121,13 +121,13 @@ impl AzdlsCore {
     /// resource should be one of `file` or `directory`
     ///
     /// ref: 
https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/create
-    pub fn azdls_create_request(
+    pub async fn azdls_create(
         &self,
         path: &str,
         resource: &str,
         args: &OpWrite,
         body: Buffer,
-    ) -> Result<Request<Buffer>> {
+    ) -> Result<Response<Buffer>> {
         let p = build_abs_path(&self.root, path)
             .trim_end_matches('/')
             .to_string();
@@ -161,9 +161,11 @@ impl AzdlsCore {
         }
 
         // Set body
-        let req = req.body(body).map_err(new_request_build_error)?;
+        let mut req = req.body(body).map_err(new_request_build_error)?;
+
+        self.sign(&mut req).await?;
 
-        Ok(req)
+        self.send(req).await
     }
 
     pub async fn azdls_rename(&self, from: &str, to: &str) -> 
Result<Response<Buffer>> {
@@ -191,13 +193,13 @@ impl AzdlsCore {
     }
 
     /// ref: 
https://learn.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/update
-    pub fn azdls_update_request(
+    pub async fn azdls_update(
         &self,
         path: &str,
         size: Option<u64>,
         position: u64,
         body: Buffer,
-    ) -> Result<Request<Buffer>> {
+    ) -> Result<Response<Buffer>> {
         let p = build_abs_path(&self.root, path);
 
         // - close: Make this is the final action to this file.
@@ -217,9 +219,11 @@ impl AzdlsCore {
         }
 
         // Set body
-        let req = req.body(body).map_err(new_request_build_error)?;
+        let mut req = req.body(body).map_err(new_request_build_error)?;
 
-        Ok(req)
+        self.sign(&mut req).await?;
+
+        self.send(req).await
     }
 
     pub async fn azdls_get_properties(&self, path: &str) -> 
Result<Response<Buffer>> {
@@ -307,16 +311,16 @@ impl AzdlsCore {
 
         if !parts.is_empty() {
             let parent_path = parts.join("/");
-            let mut req = self.azdls_create_request(
-                &parent_path,
-                "directory",
-                &OpWrite::default(),
-                Buffer::new(),
-            )?;
-
-            self.sign(&mut req).await?;
-
-            Ok(Some(self.send(req).await?))
+            let resp = self
+                .azdls_create(
+                    &parent_path,
+                    "directory",
+                    &OpWrite::default(),
+                    Buffer::new(),
+                )
+                .await?;
+
+            Ok(Some(resp))
         } else {
             Ok(None)
         }
diff --git a/core/src/services/azdls/writer.rs 
b/core/src/services/azdls/writer.rs
index 384023cbb..227022eba 100644
--- a/core/src/services/azdls/writer.rs
+++ b/core/src/services/azdls/writer.rs
@@ -41,13 +41,10 @@ impl AzdlsWriter {
 
 impl oio::OneShotWrite for AzdlsWriter {
     async fn write_once(&self, bs: Buffer) -> Result<Metadata> {
-        let mut req =
-            self.core
-                .azdls_create_request(&self.path, "file", &self.op, 
Buffer::new())?;
-
-        self.core.sign(&mut req).await?;
-
-        let resp = self.core.send(req).await?;
+        let resp = self
+            .core
+            .azdls_create(&self.path, "file", &self.op, Buffer::new())
+            .await?;
 
         let status = resp.status();
         match status {
@@ -57,13 +54,10 @@ impl oio::OneShotWrite for AzdlsWriter {
             }
         }
 
-        let mut req = self
+        let resp = self
             .core
-            .azdls_update_request(&self.path, Some(bs.len() as u64), 0, bs)?;
-
-        self.core.sign(&mut req).await?;
-
-        let resp = self.core.send(req).await?;
+            .azdls_update(&self.path, Some(bs.len() as u64), 0, bs)
+            .await?;
 
         let status = resp.status();
         match status {
@@ -89,13 +83,10 @@ impl oio::AppendWrite for AzdlsWriter {
 
     async fn append(&self, offset: u64, size: u64, body: Buffer) -> 
Result<Metadata> {
         if offset == 0 {
-            let mut req =
-                self.core
-                    .azdls_create_request(&self.path, "file", &self.op, 
Buffer::new())?;
-
-            self.core.sign(&mut req).await?;
-
-            let resp = self.core.send(req).await?;
+            let resp = self
+                .core
+                .azdls_create(&self.path, "file", &self.op, Buffer::new())
+                .await?;
 
             let status = resp.status();
             match status {
@@ -106,13 +97,10 @@ impl oio::AppendWrite for AzdlsWriter {
             }
         }
 
-        let mut req = self
+        let resp = self
             .core
-            .azdls_update_request(&self.path, Some(size), offset, body)?;
-
-        self.core.sign(&mut req).await?;
-
-        let resp = self.core.send(req).await?;
+            .azdls_update(&self.path, Some(size), offset, body)
+            .await?;
 
         let status = resp.status();
         match status {

Reply via email to