Skip to main content

BlockBlobClient

Struct BlockBlobClient 

Source
pub struct BlockBlobClient { /* private fields */ }

Implementations§

Source§

impl BlockBlobClient

Source

pub fn new( blob_url: Url, credential: Option<Arc<dyn TokenCredential>>, options: Option<BlockBlobClientOptions>, ) -> Result<Self>

Creates a new BlockBlobClient from a block blob URL.

§Arguments
  • blob_url - The full URL of the block blob, for example https://myaccount.blob.core.windows.net/mycontainer/myblob. The caller is responsible for percent-encoding the URL correctly; it will be used as-is.
  • credential - An optional implementation of TokenCredential that can provide an Entra ID token to use when authenticating.
  • options - Optional configuration for the client.
Source

pub fn url(&self) -> &Url

Gets the URL of the blob.

Source

pub async fn upload( &self, content: RequestContent<Bytes, NoFormat>, options: Option<BlockBlobClientUploadOptions<'_>>, ) -> Result<BlockBlobClientUploadResult>

Uploads content to a block blob, overwriting any existing blob by default.

Updating an existing block blob overwrites any existing metadata on the blob. Use BlockBlobClientUploadOptions::if_not_exists() to fail instead of overwriting. To perform a partial update of the content of a block blob, use stage_block and commit_block_list directly.

§Arguments
  • content - The content to upload.
  • options - Optional parameters for the request.
Source§

impl BlockBlobClient

Source

pub async fn commit_block_list( &self, blocks: RequestContent<BlockLookupList, XmlFormat>, options: Option<BlockBlobClientCommitBlockListOptions<'_>>, ) -> Result<Response<BlockBlobClientCommitBlockListResult, NoFormat>>

Writes to the block blob by specifying the list of block IDs that make up the blob.

§Arguments
  • blocks - Blob blocks.
  • options - Optional parameters for the request.
§Response Headers

The returned Response implements the BlockBlobClientCommitBlockListResultHeaders trait, which provides access to response headers. For example:

use azure_core::{Result, http::{Response, NoFormat}};
use azure_storage_blob::models::{BlockBlobClientCommitBlockListResult, BlockBlobClientCommitBlockListResultHeaders};
async fn example() -> Result<()> {
    let response: Response<BlockBlobClientCommitBlockListResult, NoFormat> = unimplemented!();
    // Access response headers
    if let Some(content_md5) = response.content_md5()? {
        println!("content-md5: {:?}", content_md5);
    }
    if let Some(etag) = response.etag()? {
        println!("etag: {:?}", etag);
    }
    if let Some(last_modified) = response.last_modified()? {
        println!("last-modified: {:?}", last_modified);
    }
    Ok(())
}
§Available headers
Source

pub async fn get_block_list( &self, list_type: BlockListType, options: Option<BlockBlobClientGetBlockListOptions<'_>>, ) -> Result<Response<BlockList, XmlFormat>>

Retrieves the list of blocks that have been uploaded as part of the block blob.

§Arguments
  • list_type - Specifies whether to return the list of committed blocks, the list of uncommitted blocks, or both lists together.
  • options - Optional parameters for the request.
§Response Headers

The returned Response implements the BlockListHeaders trait, which provides access to response headers. For example:

use azure_core::{Result, http::{Response, XmlFormat}};
use azure_storage_blob::models::{BlockList, BlockListHeaders};
async fn example() -> Result<()> {
    let response: Response<BlockList, XmlFormat> = unimplemented!();
    // Access response headers
    if let Some(etag) = response.etag()? {
        println!("etag: {:?}", etag);
    }
    if let Some(last_modified) = response.last_modified()? {
        println!("last-modified: {:?}", last_modified);
    }
    if let Some(blob_content_length) = response.blob_content_length()? {
        println!("x-ms-blob-content-length: {:?}", blob_content_length);
    }
    Ok(())
}
§Available headers
Source

pub async fn stage_block( &self, block_id: &[u8], content_length: u64, body: RequestContent<Bytes, NoFormat>, options: Option<BlockBlobClientStageBlockOptions<'_>>, ) -> Result<Response<BlockBlobClientStageBlockResult, NoFormat>>

Creates a new block of data to be committed as part of a blob.

§Arguments
  • block_id - A Base64 value that identifies the block. Prior to encoding, the string must be less than or equal to 64 bytes in size. For a given blob, the length of the value specified for the blockid parameter must be the same size for each block.
  • content_length - The length of the request.
  • body - The body of the request.
  • options - Optional parameters for the request.
§Response Headers

The returned Response implements the BlockBlobClientStageBlockResultHeaders trait, which provides access to response headers. For example:

use azure_core::{Result, http::{Response, NoFormat}};
use azure_storage_blob::models::{BlockBlobClientStageBlockResult, BlockBlobClientStageBlockResultHeaders};
async fn example() -> Result<()> {
    let response: Response<BlockBlobClientStageBlockResult, NoFormat> = unimplemented!();
    // Access response headers
    if let Some(content_md5) = response.content_md5()? {
        println!("content-md5: {:?}", content_md5);
    }
    if let Some(content_crc64) = response.content_crc64()? {
        println!("x-ms-content-crc64: {:?}", content_crc64);
    }
    if let Some(encryption_key_sha256) = response.encryption_key_sha256()? {
        println!("x-ms-encryption-key-sha256: {:?}", encryption_key_sha256);
    }
    Ok(())
}
§Available headers
Source

pub async fn stage_block_from_url( &self, block_id: &[u8], content_length: u64, source_url: String, options: Option<BlockBlobClientStageBlockFromUrlOptions<'_>>, ) -> Result<Response<BlockBlobClientStageBlockFromUrlResult, NoFormat>>

Creates a new block of data from the specified URL to be committed as part of a blob.

§Arguments
  • block_id - A Base64 value that identifies the block. Prior to encoding, the string must be less than or equal to 64 bytes in size. For a given blob, the length of the value specified for the blockid parameter must be the same size for each block.
  • content_length - The length of the request.
  • source_url - Specifies the URL of the source.
  • options - Optional parameters for the request.
§Response Headers

The returned Response implements the BlockBlobClientStageBlockFromUrlResultHeaders trait, which provides access to response headers. For example:

use azure_core::{Result, http::{Response, NoFormat}};
use azure_storage_blob::models::{BlockBlobClientStageBlockFromUrlResult, BlockBlobClientStageBlockFromUrlResultHeaders};
async fn example() -> Result<()> {
    let response: Response<BlockBlobClientStageBlockFromUrlResult, NoFormat> = unimplemented!();
    // Access response headers
    if let Some(content_md5) = response.content_md5()? {
        println!("content-md5: {:?}", content_md5);
    }
    if let Some(content_crc64) = response.content_crc64()? {
        println!("x-ms-content-crc64: {:?}", content_crc64);
    }
    if let Some(encryption_key_sha256) = response.encryption_key_sha256()? {
        println!("x-ms-encryption-key-sha256: {:?}", encryption_key_sha256);
    }
    Ok(())
}
§Available headers
Source

pub async fn upload_blob_from_url( &self, copy_source: String, options: Option<BlockBlobClientUploadBlobFromUrlOptions<'_>>, ) -> Result<Response<BlockBlobClientUploadBlobFromUrlResult, NoFormat>>

Uploads the content from the specified URL to the block blob. If the blob already exists, the data and any existing metadata will be overwritten.

§Arguments
  • copy_source - Specifies the name of the source URL for the copy operation. The value should be URL-encoded as it would appear in a request URI.
  • options - Optional parameters for the request.
§Response Headers

The returned Response implements the BlockBlobClientUploadBlobFromUrlResultHeaders trait, which provides access to response headers. For example:

use azure_core::{Result, http::{Response, NoFormat}};
use azure_storage_blob::models::{BlockBlobClientUploadBlobFromUrlResult, BlockBlobClientUploadBlobFromUrlResultHeaders};
async fn example() -> Result<()> {
    let response: Response<BlockBlobClientUploadBlobFromUrlResult, NoFormat> = unimplemented!();
    // Access response headers
    if let Some(content_md5) = response.content_md5()? {
        println!("content-md5: {:?}", content_md5);
    }
    if let Some(etag) = response.etag()? {
        println!("etag: {:?}", etag);
    }
    if let Some(last_modified) = response.last_modified()? {
        println!("last-modified: {:?}", last_modified);
    }
    Ok(())
}
§Available headers

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> 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> 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> ServiceExt for T

Source§

fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>
where Self: Sized,

Apply a transformation to the response body. Read more
Source§

fn decompression(self) -> Decompression<Self>
where Self: Sized,

Decompress response bodies. Read more
Source§

fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>
where Self: Sized,

High level tracing that classifies responses using HTTP status codes. Read more
Source§

fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>
where Self: Sized,

High level tracing that classifies responses using gRPC headers. Read more
Source§

fn follow_redirects(self) -> FollowRedirect<Self>
where Self: Sized,

Follow redirect resposes using the Standard policy. 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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