diff --git a/core/services/azfile/src/backend.rs b/core/services/azfile/src/backend.rs index 1c833b6e30b5..cf3a0f00c188 100644 --- a/core/services/azfile/src/backend.rs +++ b/core/services/azfile/src/backend.rs @@ -261,6 +261,7 @@ impl Builder for AzfileBuilder { signer, sign_ctx, share_name: self.config.share_name.clone(), + sas_token: self.config.sas_token.clone(), }), }) } diff --git a/core/services/azfile/src/core.rs b/core/services/azfile/src/core.rs index 9c8898ba9015..2fd607f938b7 100644 --- a/core/services/azfile/src/core.rs +++ b/core/services/azfile/src/core.rs @@ -47,6 +47,7 @@ pub struct AzfileCore { pub root: String, pub endpoint: String, pub share_name: String, + pub sas_token: Option, pub signer: Signer, pub sign_ctx: Context, } @@ -306,12 +307,15 @@ impl AzfileCore { // the official document does not mention the URL style path // find the solution from the community FAQ and implementation of the Java-SDK // ref: https://learn.microsoft.com/en-us/answers/questions/799611/azure-file-service-rest-api(rename)?page=1 - let source_url = format!( + let mut source_url = format!( "{}/{}/{}", self.endpoint, self.share_name, percent_encode_path(&p) ); + if let Some(sas_token) = &self.sas_token { + source_url = format!("{source_url}?{sas_token}"); + } req = req.header(X_MS_FILE_RENAME_SOURCE, &source_url);