diff --git a/sdk/data_tables/examples/table_00.rs b/sdk/data_tables/examples/table_00.rs
index 5a3b18696b..82625d3e7c 100644
--- a/sdk/data_tables/examples/table_00.rs
+++ b/sdk/data_tables/examples/table_00.rs
@@ -27,7 +27,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify the table name as first command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let table_service = storage_client.table_service_client()?;
diff --git a/sdk/storage/examples/account00.rs b/sdk/storage/examples/account00.rs
index e8bef72ed2..3089d2c768 100644
--- a/sdk/storage/examples/account00.rs
+++ b/sdk/storage/examples/account00.rs
@@ -8,7 +8,8 @@ async fn main() -> azure_core::Result<()> {
let access_key =
std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let response = storage_client
.get_account_information()
diff --git a/sdk/storage/src/core/clients/storage_client.rs b/sdk/storage/src/core/clients/storage_client.rs
index 6d05da63a2..1c91f9b3ae 100644
--- a/sdk/storage/src/core/clients/storage_client.rs
+++ b/sdk/storage/src/core/clients/storage_client.rs
@@ -80,7 +80,7 @@ pub struct StorageClient {
}
impl StorageClient {
- pub fn new_access_key(account: A, key: K) -> Self
+ pub fn new_access_key(account: A, key: K, options: StorageOptions) -> Self
where
A: Into,
K: Into,
@@ -88,8 +88,7 @@ impl StorageClient {
let account = account.into();
let key = key.into();
let storage_credentials = StorageCredentials::Key(account.clone(), key);
- let pipeline =
- new_pipeline_from_options(StorageOptions::new(), storage_credentials.clone());
+ let pipeline = new_pipeline_from_options(options, storage_credentials.clone());
Self {
blob_storage_url: get_endpoint_uri(None, &account, "blob").unwrap(),
@@ -114,6 +113,7 @@ impl StorageClient {
table_storage_url: &Url,
queue_storage_url: &Url,
filesystem_url: &Url,
+ options: StorageOptions,
) -> Self {
Self::new_emulator_with_account(
blob_storage_url,
@@ -122,6 +122,7 @@ impl StorageClient {
filesystem_url,
EMULATOR_ACCOUNT,
EMULATOR_ACCOUNT_KEY,
+ options,
)
}
@@ -136,6 +137,7 @@ impl StorageClient {
&table_storage_url,
&queue_storage_url,
&filesystem_url,
+ StorageOptions::default(),
)
}
@@ -146,6 +148,7 @@ impl StorageClient {
filesystem_url: &Url,
account: A,
key: K,
+ options: StorageOptions,
) -> Self
where
A: Into,
@@ -154,7 +157,7 @@ impl StorageClient {
let account = account.into();
let key = key.into();
let storage_credentials = StorageCredentials::Key(account.clone(), key.clone());
- let pipeline = new_pipeline_from_options(StorageOptions::new(), storage_credentials);
+ let pipeline = new_pipeline_from_options(options, storage_credentials);
let blob_storage_url = Url::parse(&format!("{}{}", blob_storage_url, account)).unwrap();
let table_storage_url = Url::parse(&format!("{}{}", table_storage_url, account)).unwrap();
let queue_storage_url = Url::parse(&format!("{}{}", queue_storage_url, account)).unwrap();
@@ -172,7 +175,11 @@ impl StorageClient {
}
}
- pub fn new_sas_token(account: A, sas_token: S) -> azure_core::Result
+ pub fn new_sas_token(
+ account: A,
+ sas_token: S,
+ options: StorageOptions,
+ ) -> azure_core::Result
where
A: Into,
S: AsRef,
@@ -181,8 +188,7 @@ impl StorageClient {
let storage_credentials =
StorageCredentials::SASToken(get_sas_token_parms(sas_token.as_ref())?);
- let pipeline =
- new_pipeline_from_options(StorageOptions::new(), storage_credentials.clone());
+ let pipeline = new_pipeline_from_options(options, storage_credentials.clone());
Ok(Self {
blob_storage_url: get_endpoint_uri(None, &account, "blob")?,
@@ -200,7 +206,7 @@ impl StorageClient {
})
}
- pub fn new_bearer_token(account: A, bearer_token: BT) -> Self
+ pub fn new_bearer_token(account: A, bearer_token: BT, options: StorageOptions) -> Self
where
A: Into,
BT: Into,
@@ -208,8 +214,7 @@ impl StorageClient {
let account = account.into();
let bearer_token = bearer_token.into();
let storage_credentials = StorageCredentials::BearerToken(bearer_token);
- let pipeline =
- new_pipeline_from_options(StorageOptions::new(), storage_credentials.clone());
+ let pipeline = new_pipeline_from_options(options, storage_credentials.clone());
Self {
blob_storage_url: get_endpoint_uri(None, &account, "blob").unwrap(),
@@ -228,14 +233,17 @@ impl StorageClient {
}
}
- pub fn new_token_credential(account: A, token_credential: Arc) -> Self
+ pub fn new_token_credential(
+ account: A,
+ token_credential: Arc,
+ options: StorageOptions,
+ ) -> Self
where
A: Into,
{
let account = account.into();
let storage_credentials = StorageCredentials::TokenCredential(token_credential);
- let pipeline =
- new_pipeline_from_options(StorageOptions::new(), storage_credentials.clone());
+ let pipeline = new_pipeline_from_options(options, storage_credentials.clone());
Self {
blob_storage_url: get_endpoint_uri(None, &account, "blob").unwrap(),
@@ -254,7 +262,10 @@ impl StorageClient {
}
}
- pub fn new_connection_string(connection_string: &str) -> azure_core::Result {
+ pub fn new_connection_string(
+ connection_string: &str,
+ options: StorageOptions,
+ ) -> azure_core::Result {
match ConnectionString::new(connection_string)? {
ConnectionString {
account_name: Some(account),
@@ -271,7 +282,7 @@ impl StorageClient {
let storage_credentials = StorageCredentials::SASToken(get_sas_token_parms(
sas_token,
)?);
- let pipeline = new_pipeline_from_options(StorageOptions::new(), storage_credentials.clone());
+ let pipeline = new_pipeline_from_options(options, storage_credentials.clone());
Ok(Self {
storage_credentials,
@@ -295,7 +306,7 @@ impl StorageClient {
} => {
let storage_credentials = StorageCredentials::SASToken(get_sas_token_parms(sas_token)?);
let pipeline =
- new_pipeline_from_options(StorageOptions::new(), storage_credentials.clone());
+ new_pipeline_from_options(options, storage_credentials.clone());
Ok(Self {
storage_credentials,
blob_storage_url: get_endpoint_uri(blob_endpoint, account, "blob")?,
@@ -317,7 +328,7 @@ impl StorageClient {
} => {
let storage_credentials = StorageCredentials::Key(account.to_owned(), key.to_owned());
- let pipeline = new_pipeline_from_options(StorageOptions::new(), storage_credentials.clone());
+ let pipeline = new_pipeline_from_options(options, storage_credentials.clone());
Ok(Self {
storage_credentials,
blob_storage_url: get_endpoint_uri(blob_endpoint, account, "blob")?,
@@ -535,7 +546,7 @@ fn new_pipeline_from_options(options: StorageOptions, credentials: StorageCreden
Pipeline::new(
option_env!("CARGO_PKG_NAME"),
option_env!("CARGO_PKG_VERSION"),
- options.options,
+ options.client_options,
Vec::new(),
per_retry_policies,
)
@@ -543,13 +554,13 @@ fn new_pipeline_from_options(options: StorageOptions, credentials: StorageCreden
#[derive(Debug, Clone, Default)]
pub struct StorageOptions {
- options: ClientOptions,
+ client_options: ClientOptions,
timeout_policy: TimeoutPolicy,
}
impl StorageOptions {
- fn new() -> StorageOptions {
- Self::default()
+ setters! {
+ client_options: ClientOptions,
}
pub fn set_timeout(&mut self, default_timeout: Timeout) {
diff --git a/sdk/storage/src/core/prelude.rs b/sdk/storage/src/core/prelude.rs
index 50e33d05dc..8fe172db99 100644
--- a/sdk/storage/src/core/prelude.rs
+++ b/sdk/storage/src/core/prelude.rs
@@ -1,5 +1,5 @@
pub use crate::core::{
- clients::StorageClient,
+ clients::{StorageClient, StorageOptions},
shared_access_signature::{
account_sas::{AccountSasPermissions, AccountSasResource, AccountSasResourceType},
service_sas::{BlobSasPermissions, BlobSignedResource},
diff --git a/sdk/storage/tests/account.rs b/sdk/storage/tests/account.rs
index 6f2c4b0f51..589943c5fb 100644
--- a/sdk/storage/tests/account.rs
+++ b/sdk/storage/tests/account.rs
@@ -8,7 +8,8 @@ async fn get_account_information() {
let access_key =
std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
storage_client
.get_account_information()
diff --git a/sdk/storage_blobs/examples/blob_00.rs b/sdk/storage_blobs/examples/blob_00.rs
index 48a7f2d23c..5f756f4e1d 100644
--- a/sdk/storage_blobs/examples/blob_00.rs
+++ b/sdk/storage_blobs/examples/blob_00.rs
@@ -20,7 +20,8 @@ async fn main() -> azure_core::Result<()> {
.nth(2)
.expect("please specify blob name as command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
// this is how you would use the SAS token:
// let storage_client = StorageAccountClient::new_sas_token(http_client.clone(), &account,
diff --git a/sdk/storage_blobs/examples/blob_01.rs b/sdk/storage_blobs/examples/blob_01.rs
index 795bd98714..2c219a8cb8 100644
--- a/sdk/storage_blobs/examples/blob_01.rs
+++ b/sdk/storage_blobs/examples/blob_01.rs
@@ -16,7 +16,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify container name as command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let container_client = storage_client.container_client(&container_name);
let blob_client = container_client.blob_client("SorgeniaReorganizeRebuildIndexes.zip");
diff --git a/sdk/storage_blobs/examples/blob_02_bearer_token.rs b/sdk/storage_blobs/examples/blob_02_bearer_token.rs
index 60076e9be6..1497c1d331 100644
--- a/sdk/storage_blobs/examples/blob_02_bearer_token.rs
+++ b/sdk/storage_blobs/examples/blob_02_bearer_token.rs
@@ -21,9 +21,10 @@ async fn main() -> azure_core::Result<()> {
.nth(4)
.expect("please specify the bearer token as fourth command line parameter");
- let blob_client = StorageClient::new_bearer_token(&account, bearer_token)
- .container_client(&container)
- .blob_client(&blob);
+ let blob_client =
+ StorageClient::new_bearer_token(&account, bearer_token, StorageOptions::default())
+ .container_client(&container)
+ .blob_client(&blob);
trace!("Requesting blob");
diff --git a/sdk/storage_blobs/examples/blob_04.rs b/sdk/storage_blobs/examples/blob_04.rs
index 35c5b84fd6..1f592c43a0 100644
--- a/sdk/storage_blobs/examples/blob_04.rs
+++ b/sdk/storage_blobs/examples/blob_04.rs
@@ -17,9 +17,10 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify container name as command line parameter");
- let blob_client = StorageClient::new_access_key(&account, &access_key)
- .container_client(&container_name)
- .blob_client("test1");
+ let blob_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
+ .container_client(&container_name)
+ .blob_client("test1");
// this example fills a 1 KB file with ASCII text and
// sends it in chunks of 256 bytes (4 chunks).
diff --git a/sdk/storage_blobs/examples/blob_05_default_credential.rs b/sdk/storage_blobs/examples/blob_05_default_credential.rs
index 1aa2afa32d..77efdd3d6a 100644
--- a/sdk/storage_blobs/examples/blob_05_default_credential.rs
+++ b/sdk/storage_blobs/examples/blob_05_default_credential.rs
@@ -28,9 +28,13 @@ async fn main() -> azure_core::Result<()> {
.get_token("https://storage.azure.com/")
.await?;
- let blob_client = StorageClient::new_bearer_token(&account, bearer_token.token.secret())
- .container_client(&container)
- .blob_client(&blob);
+ let blob_client = StorageClient::new_bearer_token(
+ &account,
+ bearer_token.token.secret(),
+ StorageOptions::default(),
+ )
+ .container_client(&container)
+ .blob_client(&blob);
trace!("Requesting blob");
diff --git a/sdk/storage_blobs/examples/blob_06_auto_refreshing_credentials.rs b/sdk/storage_blobs/examples/blob_06_auto_refreshing_credentials.rs
index a4b12551dc..6d29bd107c 100644
--- a/sdk/storage_blobs/examples/blob_06_auto_refreshing_credentials.rs
+++ b/sdk/storage_blobs/examples/blob_06_auto_refreshing_credentials.rs
@@ -25,9 +25,10 @@ async fn main() -> azure_core::Result<()> {
let creds = Arc::new(DefaultAzureCredential::default());
let auto_creds = Arc::new(AutoRefreshingTokenCredential::new(creds));
- let blob_client = StorageClient::new_token_credential(&account, auto_creds)
- .container_client(&container)
- .blob_client(&blob);
+ let blob_client =
+ StorageClient::new_token_credential(&account, auto_creds, StorageOptions::default())
+ .container_client(&container)
+ .blob_client(&blob);
trace!("Requesting blob");
let content = blob_client.get_content().await?;
diff --git a/sdk/storage_blobs/examples/blob_range.rs b/sdk/storage_blobs/examples/blob_range.rs
index 2e2e9f7a6a..61094ec976 100644
--- a/sdk/storage_blobs/examples/blob_range.rs
+++ b/sdk/storage_blobs/examples/blob_range.rs
@@ -17,9 +17,10 @@ async fn main() -> azure_core::Result<()> {
.nth(2)
.expect("please specify blob name as command line parameter");
- let blob_client = StorageClient::new_access_key(&account, &access_key)
- .container_client(&container)
- .blob_client(&blob);
+ let blob_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
+ .container_client(&container)
+ .blob_client(&blob);
// 1024 G, 512 H and 2048 I
let mut buf: Vec = Vec::with_capacity(1024 * 4);
diff --git a/sdk/storage_blobs/examples/connection_string.rs b/sdk/storage_blobs/examples/connection_string.rs
index 8ef7369c49..fbc6324693 100644
--- a/sdk/storage_blobs/examples/connection_string.rs
+++ b/sdk/storage_blobs/examples/connection_string.rs
@@ -13,7 +13,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify container name as command line parameter");
- let storage_client = StorageClient::new_connection_string(&connection_string)?;
+ let storage_client =
+ StorageClient::new_connection_string(&connection_string, StorageOptions::default())?;
let container_client = storage_client.container_client(&container_name);
let blob_service = storage_client.blob_service_client();
diff --git a/sdk/storage_blobs/examples/container_00.rs b/sdk/storage_blobs/examples/container_00.rs
index 1ac537cfed..68ae2a8f8d 100644
--- a/sdk/storage_blobs/examples/container_00.rs
+++ b/sdk/storage_blobs/examples/container_00.rs
@@ -15,7 +15,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify container name as command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let blob_service_client = storage_client.blob_service_client();
let container_client = storage_client.container_client(container_name);
diff --git a/sdk/storage_blobs/examples/container_01.rs b/sdk/storage_blobs/examples/container_01.rs
index aa757d9160..a373109869 100644
--- a/sdk/storage_blobs/examples/container_01.rs
+++ b/sdk/storage_blobs/examples/container_01.rs
@@ -16,7 +16,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify container name as command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let container_client = storage_client.container_client(container_name);
let mut metadata = Metadata::new();
diff --git a/sdk/storage_blobs/examples/container_and_blob.rs b/sdk/storage_blobs/examples/container_and_blob.rs
index 3af825f932..1965e01d6b 100644
--- a/sdk/storage_blobs/examples/container_and_blob.rs
+++ b/sdk/storage_blobs/examples/container_and_blob.rs
@@ -16,7 +16,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify container name as command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let container_client = storage_client.container_client(&container_name);
// create container
diff --git a/sdk/storage_blobs/examples/copy_blob.rs b/sdk/storage_blobs/examples/copy_blob.rs
index b03051dc0a..4f3c05ef36 100644
--- a/sdk/storage_blobs/examples/copy_blob.rs
+++ b/sdk/storage_blobs/examples/copy_blob.rs
@@ -28,15 +28,22 @@ async fn main() -> azure_core::Result<()> {
.nth(4)
.expect("please specify destination blob name as fourth command line parameter");
- let source_storage_client = StorageClient::new_access_key(&source_account, &source_access_key);
+ let source_storage_client = StorageClient::new_access_key(
+ &source_account,
+ &source_access_key,
+ StorageOptions::default(),
+ );
let source_blob = source_storage_client
.container_client(&source_container_name)
.blob_client(&source_blob_name);
- let destination_blob =
- StorageClient::new_access_key(&destination_account, &destination_access_key)
- .container_client(&destination_container_name)
- .blob_client(&destination_blob_name);
+ let destination_blob = StorageClient::new_access_key(
+ &destination_account,
+ &destination_access_key,
+ StorageOptions::default(),
+ )
+ .container_client(&destination_container_name)
+ .blob_client(&destination_blob_name);
// let's get a SAS key for the source
let sas_url = {
diff --git a/sdk/storage_blobs/examples/copy_blob_from_url.rs b/sdk/storage_blobs/examples/copy_blob_from_url.rs
index 6b59828877..93f0b525cf 100644
--- a/sdk/storage_blobs/examples/copy_blob_from_url.rs
+++ b/sdk/storage_blobs/examples/copy_blob_from_url.rs
@@ -22,7 +22,8 @@ async fn main() -> azure_core::Result<()> {
.nth(4)
.expect("please specify destination blob name as fourth command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let blob_client = storage_client
.container_client(&destination_container)
.blob_client(&destination_blob);
diff --git a/sdk/storage_blobs/examples/count_blobs.rs b/sdk/storage_blobs/examples/count_blobs.rs
index 5c9ae68825..e293c6af1a 100644
--- a/sdk/storage_blobs/examples/count_blobs.rs
+++ b/sdk/storage_blobs/examples/count_blobs.rs
@@ -14,7 +14,8 @@ async fn main() -> azure_core::Result<()> {
.expect("please specify container name as command line parameter");
let container_client =
- StorageClient::new_access_key(&account, &access_key).container_client(&container);
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
+ .container_client(&container);
let mut count: usize = 0;
let mut list_blobs = container_client.list_blobs().into_stream();
diff --git a/sdk/storage_blobs/examples/device_code_flow.rs b/sdk/storage_blobs/examples/device_code_flow.rs
index af5ed9a957..d3a2cb9387 100644
--- a/sdk/storage_blobs/examples/device_code_flow.rs
+++ b/sdk/storage_blobs/examples/device_code_flow.rs
@@ -74,6 +74,7 @@ async fn main() -> azure_core::Result<()> {
let storage_client = StorageClient::new_bearer_token(
&storage_account_name,
authorization.access_token().secret(),
+ StorageOptions::default(),
);
let blob_service_client = storage_client.blob_service_client();
diff --git a/sdk/storage_blobs/examples/list_blobs_00.rs b/sdk/storage_blobs/examples/list_blobs_00.rs
index 95c3442e8b..d8672d5f6e 100644
--- a/sdk/storage_blobs/examples/list_blobs_00.rs
+++ b/sdk/storage_blobs/examples/list_blobs_00.rs
@@ -16,7 +16,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify container name as command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let blob_service = storage_client.blob_service_client();
let container_client = storage_client.container_client(&container_name);
diff --git a/sdk/storage_blobs/examples/list_blobs_01.rs b/sdk/storage_blobs/examples/list_blobs_01.rs
index 90f9720224..652b63d3a7 100644
--- a/sdk/storage_blobs/examples/list_blobs_01.rs
+++ b/sdk/storage_blobs/examples/list_blobs_01.rs
@@ -15,7 +15,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify container name as command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let blob_service_client = storage_client.blob_service_client();
let container_client = storage_client.container_client(&container_name);
diff --git a/sdk/storage_blobs/examples/list_blobs_02.rs b/sdk/storage_blobs/examples/list_blobs_02.rs
index c5d2917e8b..8084ab2259 100644
--- a/sdk/storage_blobs/examples/list_blobs_02.rs
+++ b/sdk/storage_blobs/examples/list_blobs_02.rs
@@ -14,7 +14,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify a non-existing container name as command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
create_container_and_list(storage_client, &container_name).await?;
diff --git a/sdk/storage_blobs/examples/list_containers2.rs b/sdk/storage_blobs/examples/list_containers2.rs
index b45bfd4c5b..6655b8bf47 100644
--- a/sdk/storage_blobs/examples/list_containers2.rs
+++ b/sdk/storage_blobs/examples/list_containers2.rs
@@ -17,7 +17,8 @@ async fn main() -> azure_core::Result<()> {
let access_key =
std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let blob_service_client = storage_client.blob_service_client();
let response = blob_service_client
diff --git a/sdk/storage_blobs/examples/list_containers_and_blobs.rs b/sdk/storage_blobs/examples/list_containers_and_blobs.rs
index cdd7f0fb84..42b4cb2ae6 100644
--- a/sdk/storage_blobs/examples/list_containers_and_blobs.rs
+++ b/sdk/storage_blobs/examples/list_containers_and_blobs.rs
@@ -10,7 +10,8 @@ async fn main() -> azure_core::Result<()> {
let access_key =
std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let blob_service_client = storage_client.blob_service_client();
let mut stream = blob_service_client.list_containers().into_stream();
diff --git a/sdk/storage_blobs/examples/list_containers_no_retry.rs b/sdk/storage_blobs/examples/list_containers_no_retry.rs
new file mode 100644
index 0000000000..e20fc17fa6
--- /dev/null
+++ b/sdk/storage_blobs/examples/list_containers_no_retry.rs
@@ -0,0 +1,30 @@
+use azure_core::{ClientOptions, RetryMode, RetryOptions};
+use azure_storage::core::prelude::*;
+use azure_storage_blobs::prelude::*;
+use futures::StreamExt;
+
+#[tokio::main]
+async fn main() -> azure_core::Result<()> {
+ // First we retrieve the account name and access key from environment variables.
+ let account =
+ std::env::var("STORAGE_ACCOUNT").expect("Set env variable STORAGE_ACCOUNT first!");
+ let access_key =
+ std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
+
+ let client_options =
+ ClientOptions::default().retry(RetryOptions::default().mode(RetryMode::None));
+ let options = StorageOptions::default().client_options(client_options);
+
+ let storage_client = StorageClient::new_access_key(&account, &access_key, options);
+ let blob_service_client = storage_client.blob_service_client();
+ let mut stream = blob_service_client.list_containers().into_stream();
+
+ while let Some(entry) = stream.next().await {
+ let entry = entry?;
+ for container in entry.containers {
+ println!("container: {}", container.name);
+ }
+ }
+
+ Ok(())
+}
diff --git a/sdk/storage_blobs/examples/missing_blob.rs b/sdk/storage_blobs/examples/missing_blob.rs
index 55b9ab239e..14385c1761 100644
--- a/sdk/storage_blobs/examples/missing_blob.rs
+++ b/sdk/storage_blobs/examples/missing_blob.rs
@@ -14,7 +14,8 @@ async fn main() -> azure_core::Result<()> {
let container_name = format!("example-{}", Uuid::new_v4());
let blob_name = format!("missing-{}.txt", Uuid::new_v4());
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let container_client = storage_client.container_client(&container_name);
println!("creating container {}", container_name);
container_client.create().into_future().await?;
diff --git a/sdk/storage_blobs/examples/put_append_blob_00.rs b/sdk/storage_blobs/examples/put_append_blob_00.rs
index 699667cf2c..38dd5ce251 100644
--- a/sdk/storage_blobs/examples/put_append_blob_00.rs
+++ b/sdk/storage_blobs/examples/put_append_blob_00.rs
@@ -22,9 +22,10 @@ async fn main() -> azure_core::Result<()> {
.nth(2)
.expect("please specify blob name as command line parameter");
- let blob_client = StorageClient::new_access_key(&account, &access_key)
- .container_client(&container)
- .blob_client(&blob_name);
+ let blob_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
+ .container_client(&container)
+ .blob_client(&blob_name);
//let data = b"something";
diff --git a/sdk/storage_blobs/examples/put_block_blob_00.rs b/sdk/storage_blobs/examples/put_block_blob_00.rs
index 1feee040d4..40cb3a91ea 100644
--- a/sdk/storage_blobs/examples/put_block_blob_00.rs
+++ b/sdk/storage_blobs/examples/put_block_blob_00.rs
@@ -23,9 +23,10 @@ async fn main() -> azure_core::Result<()> {
.nth(2)
.expect("please specify blob name as command line parameter");
- let blob_client = StorageClient::new_access_key(&account, &access_key)
- .container_client(&container)
- .blob_client(&blob_name);
+ let blob_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
+ .container_client(&container)
+ .blob_client(&blob_name);
let data = Bytes::from_static(b"something");
diff --git a/sdk/storage_blobs/examples/put_page_blob_00.rs b/sdk/storage_blobs/examples/put_page_blob_00.rs
index 269b21ce9e..fc132bce5e 100644
--- a/sdk/storage_blobs/examples/put_page_blob_00.rs
+++ b/sdk/storage_blobs/examples/put_page_blob_00.rs
@@ -23,9 +23,10 @@ async fn main() -> azure_core::Result<()> {
.nth(2)
.expect("please specify blob name as command line parameter");
- let blob_client = StorageClient::new_access_key(&account, &access_key)
- .container_client(&container_name)
- .blob_client(&blob_name);
+ let blob_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
+ .container_client(&container_name)
+ .blob_client(&blob_name);
let data = Bytes::from_static(&[51; 2000]);
diff --git a/sdk/storage_blobs/examples/set_blob_properties_00.rs b/sdk/storage_blobs/examples/set_blob_properties_00.rs
index 2603dda6b5..1dace07fd3 100644
--- a/sdk/storage_blobs/examples/set_blob_properties_00.rs
+++ b/sdk/storage_blobs/examples/set_blob_properties_00.rs
@@ -18,7 +18,8 @@ async fn main() -> azure_core::Result<()> {
.nth(2)
.expect("please specify blob name as command line parameter");
- let storage_client = StorageClient::new_access_key(&account, &master_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &master_key, StorageOptions::default());
// this is how you would use the SAS token:
// let storage_client = StorageAccountClient::new_sas_token(http_client.clone(), &account,
diff --git a/sdk/storage_blobs/examples/shared_access_signature.rs b/sdk/storage_blobs/examples/shared_access_signature.rs
index 00ee9d2e38..c285c6641a 100644
--- a/sdk/storage_blobs/examples/shared_access_signature.rs
+++ b/sdk/storage_blobs/examples/shared_access_signature.rs
@@ -25,7 +25,8 @@ fn code() -> azure_core::Result<()> {
let now = Utc::now() - Duration::minutes(15);
let later = now + Duration::hours(1);
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let container_client = storage_client.container_client(&container_name);
let blob_client = container_client.blob_client(&blob_name);
diff --git a/sdk/storage_blobs/examples/stream_blob_00.rs b/sdk/storage_blobs/examples/stream_blob_00.rs
index 253a7d402a..2057316e72 100644
--- a/sdk/storage_blobs/examples/stream_blob_00.rs
+++ b/sdk/storage_blobs/examples/stream_blob_00.rs
@@ -23,9 +23,10 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify container name as first command line parameter");
- let blob_client = StorageClient::new_access_key(&account, &access_key)
- .container_client(&container_name)
- .blob_client(file_name);
+ let blob_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
+ .container_client(&container_name)
+ .blob_client(file_name);
let string = "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF";
diff --git a/sdk/storage_blobs/examples/stream_blob_01.rs b/sdk/storage_blobs/examples/stream_blob_01.rs
index 1d1ab3625b..53ee70578f 100644
--- a/sdk/storage_blobs/examples/stream_blob_01.rs
+++ b/sdk/storage_blobs/examples/stream_blob_01.rs
@@ -22,9 +22,10 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("please specify container name as first command line parameter");
- let blob_client = StorageClient::new_access_key(&account, &access_key)
- .container_client(&container_name)
- .blob_client(file_name);
+ let blob_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
+ .container_client(&container_name)
+ .blob_client(file_name);
let mut stream = blob_client.get().into_stream();
while let Some(res) = stream.next().await {
diff --git a/sdk/storage_blobs/tests/append_blob.rs b/sdk/storage_blobs/tests/append_blob.rs
index ce89beccbb..5382e6e0da 100644
--- a/sdk/storage_blobs/tests/append_blob.rs
+++ b/sdk/storage_blobs/tests/append_blob.rs
@@ -19,7 +19,7 @@ async fn put_append_blob() {
let container_name: &'static str = "rust-upload-test";
let _data = b"abcdef";
- let storage = StorageClient::new_access_key(&account, &access_key);
+ let storage = StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let blob_service = storage.blob_service_client();
let container = storage.container_client(container_name);
let blob = container.blob_client(blob_name);
diff --git a/sdk/storage_blobs/tests/blob.rs b/sdk/storage_blobs/tests/blob.rs
index bcd8c19abc..3acb8bf79f 100644
--- a/sdk/storage_blobs/tests/blob.rs
+++ b/sdk/storage_blobs/tests/blob.rs
@@ -493,5 +493,5 @@ fn initialize() -> StorageClient {
let access_key =
std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
- StorageClient::new_access_key(&account, &access_key)
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
}
diff --git a/sdk/storage_blobs/tests/container.rs b/sdk/storage_blobs/tests/container.rs
index bc3dcff55c..1cd40e5142 100644
--- a/sdk/storage_blobs/tests/container.rs
+++ b/sdk/storage_blobs/tests/container.rs
@@ -71,5 +71,5 @@ fn initialize() -> StorageClient {
let access_key =
std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
- StorageClient::new_access_key(&account, &access_key)
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
}
diff --git a/sdk/storage_blobs/tests/page_blob.rs b/sdk/storage_blobs/tests/page_blob.rs
index a151dbdf19..a3ae58b54b 100644
--- a/sdk/storage_blobs/tests/page_blob.rs
+++ b/sdk/storage_blobs/tests/page_blob.rs
@@ -56,5 +56,5 @@ fn initialize() -> StorageClient {
let access_key =
std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
- StorageClient::new_access_key(&account, &access_key)
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default())
}
diff --git a/sdk/storage_blobs/tests/stream_blob00.rs b/sdk/storage_blobs/tests/stream_blob00.rs
index ec02cf0ecc..ffe9c5661b 100644
--- a/sdk/storage_blobs/tests/stream_blob00.rs
+++ b/sdk/storage_blobs/tests/stream_blob00.rs
@@ -21,7 +21,7 @@ async fn code() -> azure_core::Result<()> {
let access_key =
std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
- let storage = StorageClient::new_access_key(&account, &access_key);
+ let storage = StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let blob_service = storage.blob_service_client();
let container = storage.container_client(&container_name);
let blob = container.blob_client(file_name);
diff --git a/sdk/storage_blobs/tests/stream_list_blobs.rs b/sdk/storage_blobs/tests/stream_list_blobs.rs
index 1bd59f28df..67833a56a5 100644
--- a/sdk/storage_blobs/tests/stream_list_blobs.rs
+++ b/sdk/storage_blobs/tests/stream_list_blobs.rs
@@ -13,7 +13,7 @@ async fn stream_list_blobs() {
let container_name = "streamlistblobs235xx752zdve";
- let storage = StorageClient::new_access_key(&account, &access_key);
+ let storage = StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let blob_service = storage.blob_service_client();
let container = storage.container_client(container_name);
diff --git a/sdk/storage_queues/examples/delete_message.rs b/sdk/storage_queues/examples/delete_message.rs
index 832c7537cc..ff8871f896 100644
--- a/sdk/storage_queues/examples/delete_message.rs
+++ b/sdk/storage_queues/examples/delete_message.rs
@@ -17,7 +17,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("Please pass the queue name as first parameter");
- let storage_account = StorageClient::new_access_key(&account, &access_key);
+ let storage_account =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let queue = storage_account.queue_client(queue_name);
diff --git a/sdk/storage_queues/examples/get_messages.rs b/sdk/storage_queues/examples/get_messages.rs
index 6ccfe3b388..52e8799a60 100644
--- a/sdk/storage_queues/examples/get_messages.rs
+++ b/sdk/storage_queues/examples/get_messages.rs
@@ -17,7 +17,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("Please pass the queue name as first parameter");
- let storage_account = StorageClient::new_access_key(&account, &access_key);
+ let storage_account =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let queue = storage_account.queue_client(queue_name);
diff --git a/sdk/storage_queues/examples/list_queues.rs b/sdk/storage_queues/examples/list_queues.rs
index 29c672bb31..b60a502478 100644
--- a/sdk/storage_queues/examples/list_queues.rs
+++ b/sdk/storage_queues/examples/list_queues.rs
@@ -11,7 +11,8 @@ async fn main() -> azure_core::Result<()> {
let access_key =
std::env::var("STORAGE_ACCESS_KEY").expect("Set env variable STORAGE_ACCESS_KEY first!");
- let storage_account = StorageClient::new_access_key(&account, &access_key);
+ let storage_account =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let queue_service = storage_account.queue_service_client();
diff --git a/sdk/storage_queues/examples/peek_messages.rs b/sdk/storage_queues/examples/peek_messages.rs
index 4fe69841f2..c6f5da024a 100644
--- a/sdk/storage_queues/examples/peek_messages.rs
+++ b/sdk/storage_queues/examples/peek_messages.rs
@@ -16,7 +16,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("Please pass the queue name as first parameter");
- let storage_account = StorageClient::new_access_key(&account, &access_key);
+ let storage_account =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let queue = storage_account.queue_client(queue_name);
println!("{:#?}", queue);
diff --git a/sdk/storage_queues/examples/put_message.rs b/sdk/storage_queues/examples/put_message.rs
index ade27c6449..5d17f8af7b 100644
--- a/sdk/storage_queues/examples/put_message.rs
+++ b/sdk/storage_queues/examples/put_message.rs
@@ -16,7 +16,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("Please pass the queue name as first parameter");
- let storage_account = StorageClient::new_access_key(&account, &access_key);
+ let storage_account =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let queue = storage_account.queue_client(queue_name);
diff --git a/sdk/storage_queues/examples/queue_create.rs b/sdk/storage_queues/examples/queue_create.rs
index f3523ec7b3..69dbe6a82b 100644
--- a/sdk/storage_queues/examples/queue_create.rs
+++ b/sdk/storage_queues/examples/queue_create.rs
@@ -18,7 +18,8 @@ async fn main() -> azure_core::Result<()> {
.nth(1)
.expect("Please pass the queue name as first parameter");
- let storage_account = StorageClient::new_access_key(&account, &access_key);
+ let storage_account =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let queue = storage_account.queue_client(queue_name);
diff --git a/sdk/storage_queues/tests/queue.rs b/sdk/storage_queues/tests/queue.rs
index f6ae255571..3cd3598aa4 100644
--- a/sdk/storage_queues/tests/queue.rs
+++ b/sdk/storage_queues/tests/queue.rs
@@ -16,7 +16,8 @@ async fn queue_create_put_and_get() -> azure_core::Result<()> {
let queue_name = format!("sdk-{}", Uuid::new_v4());
- let storage_client = StorageClient::new_access_key(&account, &access_key);
+ let storage_client =
+ StorageClient::new_access_key(&account, &access_key, StorageOptions::default());
let queue_service_client = storage_client.queue_service_client();