Skip to main content

MicrosoftAzureBuilder

Struct MicrosoftAzureBuilder 

Source
pub struct MicrosoftAzureBuilder { /* private fields */ }
Available on crate feature azure-base only.
Expand description

Configure a connection to Microsoft Azure Blob Storage container using the specified credentials.

§Example

let azure = MicrosoftAzureBuilder::new()
 .with_account(ACCOUNT)
 .with_access_key(ACCESS_KEY)
 .with_container_name(BUCKET_NAME)
 .build();

Implementations§

Source§

impl MicrosoftAzureBuilder

Source

pub fn new() -> Self

Create a new MicrosoftAzureBuilder with default values.

Source

pub fn from_env() -> Self

Create an instance of MicrosoftAzureBuilder with values pre-populated from environment variables.

Variables extracted from environment:

  • AZURE_STORAGE_ACCOUNT_NAME: storage account name
  • AZURE_STORAGE_ACCOUNT_KEY: storage account master key
  • AZURE_STORAGE_ACCESS_KEY: alias for AZURE_STORAGE_ACCOUNT_KEY
  • AZURE_STORAGE_CLIENT_ID -> client id for service principal authorization
  • AZURE_STORAGE_CLIENT_SECRET -> client secret for service principal authorization
  • AZURE_STORAGE_TENANT_ID -> tenant id used in oauth flows
§Example
use object_store::azure::MicrosoftAzureBuilder;

let azure = MicrosoftAzureBuilder::from_env()
    .with_container_name("foo")
    .build();
Source

pub fn with_url(self, url: impl Into<String>) -> Self

Parse available connection info form a well-known storage URL.

The supported url schemes are:

  • abfs[s]://<container>/<path> (according to fsspec)
  • abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>
  • abfs[s]://<file_system>@<account_name>.dfs.fabric.microsoft.com/<path>
  • az://<container>/<path> (according to fsspec)
  • adl://<container>/<path> (according to fsspec)
  • azure://<container>/<path> (custom)
  • https://<account>.dfs.core.windows.net
  • https://<account>.blob.core.windows.net
  • https://<account>.blob.core.windows.net/<container>
  • https://<account>.dfs.fabric.microsoft.com
  • https://<account>.dfs.fabric.microsoft.com/<container>
  • https://<account>.blob.fabric.microsoft.com
  • https://<account>.blob.fabric.microsoft.com/<container>

Note: Settings derived from the URL will override any others set on this builder

§Example
use object_store::azure::MicrosoftAzureBuilder;

let azure = MicrosoftAzureBuilder::from_env()
    .with_url("abfss://file_system@account.dfs.core.windows.net/")
    .build();
Source

pub fn with_config(self, key: AzureConfigKey, value: impl Into<String>) -> Self

Set an option on the builder via a key - value pair.

Source

pub fn get_config_value(&self, key: &AzureConfigKey) -> Option<String>

Get config value via a AzureConfigKey.

§Example
use object_store::azure::{MicrosoftAzureBuilder, AzureConfigKey};

let builder = MicrosoftAzureBuilder::from_env()
    .with_account("foo");
let account_name = builder.get_config_value(&AzureConfigKey::AccountName).unwrap_or_default();
assert_eq!("foo", &account_name);
Source

pub fn with_account(self, account: impl Into<String>) -> Self

Set the Azure Account (required)

Source

pub fn with_container_name(self, container_name: impl Into<String>) -> Self

Set the Azure Container Name (required)

Source

pub fn with_access_key(self, access_key: impl Into<String>) -> Self

Set the Azure Access Key (required - one of access key, bearer token, or client credentials)

Source

pub fn with_bearer_token_authorization( self, bearer_token: impl Into<String>, ) -> Self

Set a static bearer token to be used for authorizing requests

Source

pub fn with_client_secret_authorization( self, client_id: impl Into<String>, client_secret: impl Into<String>, tenant_id: impl Into<String>, ) -> Self

Set a client secret used for client secret authorization

Source

pub fn with_client_id(self, client_id: impl Into<String>) -> Self

Sets the client id for use in client secret or k8s federated credential flow

Source

pub fn with_client_secret(self, client_secret: impl Into<String>) -> Self

Sets the client secret for use in client secret flow

Source

pub fn with_tenant_id(self, tenant_id: impl Into<String>) -> Self

Sets the tenant id for use in client secret or k8s federated credential flow

Source

pub fn with_sas_authorization( self, query_pairs: impl Into<Vec<(String, String)>>, ) -> Self

Set query pairs appended to the url for shared access signature authorization

Source

pub fn with_credentials(self, credentials: AzureCredentialProvider) -> Self

Set the credential provider overriding any other options

Source

pub fn with_crypto_provider(self, provider: Arc<dyn CryptoProvider>) -> Self

The CryptoProvider to use

Source

pub fn with_use_emulator(self, use_emulator: bool) -> Self

Set if the Azure emulator should be used (defaults to false)

Source

pub fn with_endpoint(self, endpoint: String) -> Self

Override the endpoint used to communicate with blob storage

Defaults to https://{account}.blob.core.windows.net

By default, only HTTPS schemes are enabled. To connect to an HTTP endpoint, enable Self::with_allow_http.

Source

pub fn with_use_fabric_endpoint(self, use_fabric_endpoint: bool) -> Self

Set if Microsoft Fabric url scheme should be used (defaults to false)

When disabled the url scheme used is https://{account}.blob.core.windows.net When enabled the url scheme used is https://{account}.dfs.fabric.microsoft.com

Note: Self::with_endpoint will take precedence over this option

Source

pub fn with_allow_http(self, allow_http: bool) -> Self

Sets what protocol is allowed

If allow_http is :

  • false (default): Only HTTPS are allowed
  • true: HTTP and HTTPS are allowed
Source

pub fn with_authority_host(self, authority_host: impl Into<String>) -> Self

Sets an alternative authority host for OAuth based authorization

Common hosts for azure clouds are defined in authority_hosts.

Defaults to https://login.microsoftonline.com

Source

pub fn with_retry(self, retry_config: RetryConfig) -> Self

Set the retry configuration

Source

pub fn with_proxy_url(self, proxy_url: impl Into<String>) -> Self

Set the proxy_url to be used by the underlying client

Source

pub fn with_proxy_ca_certificate( self, proxy_ca_certificate: impl Into<String>, ) -> Self

Set a trusted proxy CA certificate

Source

pub fn with_proxy_excludes(self, proxy_excludes: impl Into<String>) -> Self

Set a list of hosts to exclude from proxy connections

Source

pub fn with_client_options(self, options: ClientOptions) -> Self

Sets the client options, overriding any already set

Source

pub fn with_msi_endpoint(self, msi_endpoint: impl Into<String>) -> Self

Sets the endpoint for acquiring managed identity token

Source

pub fn with_federated_token_file( self, federated_token_file: impl Into<String>, ) -> Self

Sets a file path for acquiring azure federated identity token in k8s

requires client_id and tenant_id to be set

Source

pub fn with_use_azure_cli(self, use_azure_cli: bool) -> Self

Source

pub fn with_credential_type(self, credential_type: impl Into<String>) -> Self

Set the credential type to use for authentication.

When multiple credential configurations are present (e.g. both workload identity and client secret), this forces the builder to use a specific credential type instead of relying on the default resolution order.

Supported values: auto, bearer_token, access_key, client_secret, workload_identity, sas_token, azure_cli, managed_identity.

Source

pub fn with_skip_signature(self, skip_signature: bool) -> Self

If enabled, MicrosoftAzure will not fetch credentials and will not sign requests

This can be useful when interacting with public containers

Source

pub fn with_disable_tagging(self, ignore: bool) -> Self

If set to true will ignore any tags provided to put_opts

Source

pub fn with_encryption_key(self, key: impl Into<String>) -> Self

Set the customer-provided encryption key (CPK) used to encrypt blob content.

key must be a base64-encoded 256-bit AES key (the decoded value must be exactly 32 bytes). The same key must be supplied on every subsequent read, write, or copy of any blob created with it; if the key is lost or omitted the data is unrecoverable. CPK material is sent to Azure on every request, so the configured endpoint must use HTTPS.

Only a subset of Blob storage operations support CPK (see the Azure documentation). When CPK is enabled, copy switches from the asynchronous Copy Blob API to Put Blob From URL, which is synchronous and limits the source blob to 5,000 MiB.

Source

pub fn with_http_connector<C: HttpConnector>(self, connector: C) -> Self

The HttpConnector to use

On non-WASM32 platforms uses reqwest by default, on WASM32 platforms must be provided

Source

pub fn build(self) -> Result<MicrosoftAzure>

Configure a connection to container with given name on Microsoft Azure Blob store.

Trait Implementations§

Source§

impl Clone for MicrosoftAzureBuilder

Source§

fn clone(&self) -> MicrosoftAzureBuilder

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MicrosoftAzureBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MicrosoftAzureBuilder

Source§

fn default() -> MicrosoftAzureBuilder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more