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 8d40c9bbc chore(services/oss): Use QueryPairsWriter for url write 
(#5984)
8d40c9bbc is described below

commit 8d40c9bbc77d02bb510fdde8a0eea325f7485e22
Author: Asuka Minato <[email protected]>
AuthorDate: Wed Apr 9 13:47:38 2025 +0900

    chore(services/oss): Use QueryPairsWriter for url write (#5984)
    
    * oss QueryPairsWriter
    
    * Update core.rs
    
    * clippy
    
    * Update core.rs
---
 core/src/services/oss/core.rs | 45 ++++++++++++++++++-------------------------
 1 file changed, 19 insertions(+), 26 deletions(-)

diff --git a/core/src/services/oss/core.rs b/core/src/services/oss/core.rs
index c88d4806e..01ec29ddc 100644
--- a/core/src/services/oss/core.rs
+++ b/core/src/services/oss/core.rs
@@ -17,7 +17,6 @@
 
 use std::fmt::Debug;
 use std::fmt::Formatter;
-use std::fmt::Write;
 use std::sync::Arc;
 use std::time::Duration;
 
@@ -440,34 +439,33 @@ impl OssCore {
         let p = build_abs_path(&self.root, path);
 
         let endpoint = self.get_endpoint(false);
-        let mut url = format!("{}/?list-type=2", endpoint);
-
-        write!(url, "&delimiter={delimiter}").expect("write into string must 
succeed");
+        let mut url = QueryPairsWriter::new(endpoint);
+        url = url.push("list-type", "2");
+        if !delimiter.is_empty() {
+            url = url.push("delimiter", delimiter);
+        }
         // prefix
         if !p.is_empty() {
-            write!(url, "&prefix={}", percent_encode_path(&p))
-                .expect("write into string must succeed");
+            url = url.push("prefix", &percent_encode_path(&p));
         }
 
         // max-key
         if let Some(limit) = limit {
-            write!(url, "&max-keys={limit}").expect("write into string must 
succeed");
+            url = url.push("max-keys", &limit.to_string());
         }
 
         // continuation_token
         if !token.is_empty() {
-            write!(url, "&continuation-token={}", percent_encode_path(token))
-                .expect("write into string must succeed");
+            url = url.push("continuation-token", &percent_encode_path(token));
         }
 
         // start-after
         if let Some(start_after) = start_after {
             let start_after = build_abs_path(&self.root, &start_after);
-            write!(url, "&start-after={}", percent_encode_path(&start_after))
-                .expect("write into string must succeed");
+            url = url.push("start-after", &percent_encode_path(&start_after));
         }
 
-        let req = Request::get(&url)
+        let req = Request::get(url.finish())
             .body(Buffer::new())
             .map_err(new_request_build_error)?;
         Ok(req)
@@ -533,32 +531,27 @@ impl OssCore {
     ) -> Result<Response<Buffer>> {
         let p = build_abs_path(&self.root, prefix);
 
-        let mut url = format!("{}?versions", self.endpoint);
+        let mut url = QueryPairsWriter::new(&self.endpoint);
+        url = url.push("versions", "");
+
         if !p.is_empty() {
-            write!(url, "&prefix={}", percent_encode_path(p.as_str()))
-                .expect("write into string must succeed");
+            url = url.push("prefix", &percent_encode_path(p.as_str()));
         }
         if !delimiter.is_empty() {
-            write!(url, "&delimiter={}", delimiter).expect("write into string 
must succeed");
+            url = url.push("delimiter", delimiter);
         }
 
         if let Some(limit) = limit {
-            write!(url, "&max-keys={}", limit).expect("write into string must 
succeed");
+            url = url.push("max-keys", &limit.to_string());
         }
         if !key_marker.is_empty() {
-            write!(url, "&key-marker={}", percent_encode_path(key_marker))
-                .expect("write into string must succeed");
+            url = url.push("key-marker", &percent_encode_path(key_marker));
         }
         if !version_id_marker.is_empty() {
-            write!(
-                url,
-                "&version-id-marker={}",
-                percent_encode_path(version_id_marker)
-            )
-            .expect("write into string must succeed");
+            url = url.push("version-id-marker", 
&percent_encode_path(version_id_marker));
         }
 
-        let mut req = Request::get(&url)
+        let mut req = Request::get(url.finish())
             .body(Buffer::new())
             .map_err(new_request_build_error)?;
 

Reply via email to