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 2025/03/23 05:11:12 UTC
(opendal) branch main updated: refactor: migrate azblob services to context based http client (#5845)
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 e4ffcdd43 refactor: migrate azblob services to context based http client (#5845)
e4ffcdd43 is described below
commit e4ffcdd435e2c96ea2258ae76f74b0c0192c711f
Author: Ziyi Tan <aj...@gmail.com>
AuthorDate: Sun Mar 23 13:11:08 2025 +0800
refactor: migrate azblob services to context based http client (#5845)
* Migrate azblob services to context based http client
Signed-off-by: Ziy1-Tan <aj...@gmail.com>
* update ghac
---------
Signed-off-by: Ziy1-Tan <aj...@gmail.com>
---
core/src/services/azblob/backend.rs | 23 +++++++++++++----------
core/src/services/azblob/core.rs | 5 ++---
core/src/services/azblob/writer.rs | 2 +-
core/src/services/ghac/writer.rs | 1 -
4 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/core/src/services/azblob/backend.rs b/core/src/services/azblob/backend.rs
index b90ee56e2..eafe32ddb 100644
--- a/core/src/services/azblob/backend.rs
+++ b/core/src/services/azblob/backend.rs
@@ -56,9 +56,12 @@ const AZBLOB_BATCH_LIMIT: usize = 256;
impl Configurator for AzblobConfig {
type Builder = AzblobBuilder;
+
+ #[allow(deprecated)]
fn into_builder(self) -> Self::Builder {
AzblobBuilder {
config: self,
+
http_client: None,
}
}
@@ -68,6 +71,8 @@ impl Configurator for AzblobConfig {
#[derive(Default, Clone)]
pub struct AzblobBuilder {
config: AzblobConfig,
+
+ #[deprecated(since = "0.53.0", note = "Use `Operator::update_http_client` instead")]
http_client: Option<HttpClient>,
}
@@ -244,6 +249,8 @@ impl AzblobBuilder {
///
/// This API is part of OpenDAL's Raw API. `HttpClient` could be changed
/// during minor updates.
+ #[deprecated(since = "0.53.0", note = "Use `Operator::update_http_client` instead")]
+ #[allow(deprecated)]
pub fn http_client(mut self, client: HttpClient) -> Self {
self.http_client = Some(client);
self
@@ -369,15 +376,6 @@ impl Builder for AzblobBuilder {
}?;
debug!("backend use endpoint {}", &container);
- let client = if let Some(client) = self.http_client {
- client
- } else {
- HttpClient::new().map_err(|err| {
- err.with_operation("Builder::build")
- .with_context("service", Scheme::Azblob)
- })?
- };
-
let mut config_loader = AzureStorageConfig::default().from_env();
if let Some(v) = self
@@ -494,6 +492,12 @@ impl Builder for AzblobBuilder {
..Default::default()
});
+ // allow deprecated api here for compatibility
+ #[allow(deprecated)]
+ if let Some(client) = self.http_client {
+ am.update_http_client(|_| client);
+ }
+
am.into()
},
root,
@@ -503,7 +507,6 @@ impl Builder for AzblobBuilder {
encryption_algorithm,
container: self.config.container.clone(),
- client,
loader: cred_loader,
signer,
}),
diff --git a/core/src/services/azblob/core.rs b/core/src/services/azblob/core.rs
index 0be70e2f4..87fd4da11 100644
--- a/core/src/services/azblob/core.rs
+++ b/core/src/services/azblob/core.rs
@@ -69,7 +69,6 @@ pub struct AzblobCore {
pub encryption_key: Option<HeaderValue>,
pub encryption_key_sha256: Option<HeaderValue>,
pub encryption_algorithm: Option<HeaderValue>,
- pub client: HttpClient,
pub loader: AzureStorageLoader,
pub signer: AzureStorageSigner,
}
@@ -132,7 +131,7 @@ impl AzblobCore {
#[inline]
pub async fn send(&self, req: Request<Buffer>) -> Result<Response<Buffer>> {
- self.client.send(req).await
+ self.info.http_client().send(req).await
}
pub fn insert_sse_headers(&self, mut req: http::request::Builder) -> http::request::Builder {
@@ -241,7 +240,7 @@ impl AzblobCore {
self.sign(&mut req).await?;
- self.client.fetch(req).await
+ self.info.http_client().fetch(req).await
}
pub fn azblob_put_blob_request(
diff --git a/core/src/services/azblob/writer.rs b/core/src/services/azblob/writer.rs
index 24116c364..17cf8b676 100644
--- a/core/src/services/azblob/writer.rs
+++ b/core/src/services/azblob/writer.rs
@@ -71,7 +71,7 @@ impl oio::AppendWrite for AzblobWriter {
self.core.sign(&mut req).await?;
- let resp = self.core.client.send(req).await?;
+ let resp = self.core.info.http_client().send(req).await?;
let status = resp.status();
match status {
diff --git a/core/src/services/ghac/writer.rs b/core/src/services/ghac/writer.rs
index 7fb2b3630..00aa4ac9b 100644
--- a/core/src/services/ghac/writer.rs
+++ b/core/src/services/ghac/writer.rs
@@ -127,7 +127,6 @@ impl GhacWriter {
encryption_key: None,
encryption_key_sha256: None,
encryption_algorithm: None,
- client: core.http_client.clone(),
loader: {
let config = reqsign::AzureStorageConfig {
sas_token: Some(query.to_string()),