You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by xu...@apache.org on 2026/05/23 06:09:27 UTC
(opendal) branch main updated: fix(services/tos): Set user agent header (#7598)
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 10209181a fix(services/tos): Set user agent header (#7598)
10209181a is described below
commit 10209181a6ffa4c6d38034d8dd142022d9e9c309
Author: Xin Sun <dd...@gmail.com>
AuthorDate: Sat May 23 14:09:21 2026 +0800
fix(services/tos): Set user agent header (#7598)
---
core/services/tos/src/core.rs | 43 +++++++++++++++++++++++++++----------------
1 file changed, 27 insertions(+), 16 deletions(-)
diff --git a/core/services/tos/src/core.rs b/core/services/tos/src/core.rs
index 40af6247b..ea1224cd2 100644
--- a/core/services/tos/src/core.rs
+++ b/core/services/tos/src/core.rs
@@ -23,6 +23,8 @@ use http::Response;
use http::header::CONTENT_LENGTH;
use http::header::CONTENT_TYPE;
use http::header::HOST;
+use http::header::HeaderValue;
+use http::header::USER_AGENT;
use reqsign_core::Signer;
use reqsign_volcengine_tos::Credential;
use reqsign_volcengine_tos::{percent_encode_path, percent_encode_query};
@@ -87,15 +89,20 @@ impl Debug for TosCore {
impl TosCore {
pub async fn send(&self, req: Request<Buffer>) -> Result<Response<Buffer>> {
- if self.skip_signature {
- return self.info.http_client().send(req).await;
+ let (mut parts, body) = req.into_parts();
+
+ if !self.skip_signature {
+ self.signer
+ .sign(&mut parts, None)
+ .await
+ .map_err(|e| new_request_sign_error(e.into()))?;
}
- let (mut parts, body) = req.into_parts();
- self.signer
- .sign(&mut parts, None)
- .await
- .map_err(|e| new_request_sign_error(e.into()))?;
+ parts.headers.insert(
+ USER_AGENT,
+ HeaderValue::from_str(&format!("opendal/{VERSION}"))
+ .expect("user agent must be valid header value"),
+ );
let resp = self
.info
@@ -107,18 +114,22 @@ impl TosCore {
}
pub async fn fetch(&self, req: Request<Buffer>) -> Result<Response<HttpBody>> {
- if self.skip_signature {
- return self.info.http_client().fetch(req).await;
- }
-
let (mut parts, body) = req.into_parts();
- self.signer
- .sign(&mut parts, None)
- .await
- .map_err(|e| new_request_sign_error(e.into()))?;
+ if !self.skip_signature {
+ self.signer
+ .sign(&mut parts, None)
+ .await
+ .map_err(|e| new_request_sign_error(e.into()))?;
- parts.headers.remove(HOST);
+ parts.headers.remove(HOST);
+ }
+
+ parts.headers.insert(
+ USER_AGENT,
+ HeaderValue::from_str(&format!("opendal/{VERSION}"))
+ .expect("user agent must be valid header value"),
+ );
self.info
.http_client()