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/07/24 04:33:24 UTC
(opendal) branch main updated: Revert "fix(services/gcs): stop double-encoding object paths in writer (#7943)
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 eecfe563a Revert "fix(services/gcs): stop double-encoding object paths in writer (#7943)
eecfe563a is described below
commit eecfe563ac0302802da067f50e904f7e0121a01d
Author: Erick Guan <29...@users.noreply.github.com>
AuthorDate: Fri Jul 24 12:33:16 2026 +0800
Revert "fix(services/gcs): stop double-encoding object paths in writer (#7943)
Revert "fix(services/gcs): stop double-encoding object paths in writer (#7927)"
This reverts commit 19e028238cdc11398099bd25a8ef7895a15d68a7.
---
core/services/gcs/src/core.rs | 7 +------
core/services/gcs/src/writer.rs | 17 ++++++++++++-----
2 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/core/services/gcs/src/core.rs b/core/services/gcs/src/core.rs
index acaad74eb..80eab2090 100644
--- a/core/services/gcs/src/core.rs
+++ b/core/services/gcs/src/core.rs
@@ -605,12 +605,7 @@ impl GcsCore {
) -> Result<Response<Buffer>> {
let p = build_abs_path(&self.root, path);
- let url = format!(
- "{}/{}/{}?uploads",
- self.endpoint,
- self.bucket,
- gcs_percent_encode_path(&p)
- );
+ let url = format!("{}/{}/{}?uploads", self.endpoint, self.bucket, p);
let mut builder = Request::post(&url)
.header(CONTENT_LENGTH, 0)
diff --git a/core/services/gcs/src/writer.rs b/core/services/gcs/src/writer.rs
index 4217704aa..769c0fbbe 100644
--- a/core/services/gcs/src/writer.rs
+++ b/core/services/gcs/src/writer.rs
@@ -23,6 +23,7 @@ use http::StatusCode;
use super::core::CompleteMultipartUploadRequestPart;
use super::core::GcsCore;
use super::core::InitiateMultipartUploadResult;
+use super::core::gcs_percent_encode_path;
use super::core::parse_error;
use opendal_core::raw::*;
use opendal_core::*;
@@ -50,10 +51,12 @@ impl GcsWriter {
impl oio::MultipartWrite for GcsWriter {
async fn write_once(&self, _: u64, body: Buffer) -> Result<Metadata> {
let size = body.len() as u64;
- // Forward the raw path; the core request builder percent-encodes once.
- let req = self
- .core
- .gcs_insert_object_request(&self.path, Some(size), &self.op, body)?;
+ let req = self.core.gcs_insert_object_request(
+ &gcs_percent_encode_path(&self.path),
+ Some(size),
+ &self.op,
+ body,
+ )?;
let req = self.core.sign(&self.ctx, req).await?;
@@ -74,7 +77,11 @@ impl oio::MultipartWrite for GcsWriter {
async fn initiate_part(&self) -> Result<String> {
let resp = self
.core
- .gcs_initiate_multipart_upload(&self.ctx, &self.path, &self.op)
+ .gcs_initiate_multipart_upload(
+ &self.ctx,
+ &gcs_percent_encode_path(&self.path),
+ &self.op,
+ )
.await?;
if !resp.status().is_success() {