in src/azure/client.rs [658:696]
fn build_bulk_delete_body(
&self,
boundary: &str,
paths: &[Path],
credential: &Option<Arc<AzureCredential>>,
) -> Vec<u8> {
let mut body_bytes = Vec::with_capacity(paths.len() * 2048);
for (idx, path) in paths.iter().enumerate() {
let url = self.config.path_url(path);
// Build subrequest with proper authorization
let request = self
.client
.delete(url.as_str())
.header(CONTENT_LENGTH, HeaderValue::from(0))
// Each subrequest must be authorized individually [1] and we use
// the CredentialExt for this.
// [1]: https://learn.microsoft.com/en-us/rest/api/storageservices/blob-batch?tabs=microsoft-entra-id#request-body
.with_azure_authorization(credential, &self.config.account)
.into_parts()
.1
.unwrap();
let url: Url = request.uri().to_string().parse().unwrap();
// Url for part requests must be relative and without base
let relative_url = self.config.service.make_relative(&url).unwrap();
serialize_part_delete_request(&mut body_bytes, boundary, idx, request, relative_url)
}
// Encode end marker
extend(&mut body_bytes, b"--");
extend(&mut body_bytes, boundary.as_bytes());
extend(&mut body_bytes, b"--");
extend(&mut body_bytes, b"\r\n");
body_bytes
}