Skip to main content

azure-storage-blob-rust

Azure Blob Storage SDK for Rust. Use for uploading, downloading, and managing blobs and containers. Triggers: "blob storage rust", "BlobClient rust", "upload blob rust", "download blob rust", "container rust".

Jump to install

Source facts

Repository
LongLeo287/OmniClaw
Last source activity
April 11, 2026 at 09:08
Detected SKILL.md language
English
Stars
7
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions ยท Read-only preview
name
azure_storage_blob_rust
description
Azure Blob Storage SDK for Rust. Use for uploading, downloading, and managing blobs and containers. Triggers: "blob storage rust", "BlobClient rust", "upload blob rust", "download blob rust", "container rust".
license
MIT
metadata
{"author":"Microsoft","version":"1.0.0","package":"azure_storage_blob"}
# Azure Blob Storage SDK for Rust Client library for Azure Blob Storage โ€” Microsoft's object storage solution for the cloud. ## Installation ```sh cargo add azure_storage_blob azure_identity ``` ## Environment Variables ```bash AZURE_STORAGE_ACCOUNT_NAME=<storage-account-name> # Endpoint: https://<account>.blob.core.windows.net/ ``` ## Authentication ```rust use azure_identity::DeveloperToolsCredential; use azure_storage_blob::{BlobClient, BlobClientOptions}; let credential = DeveloperToolsCredential::new(None)?; let blob_client = BlobClient::new( "https://<account>.blob.core.windows.net/", "container-name", "blob-name", Some(credential), Some(BlobClientOptions::default()), )?; ``` ## Client Types | Client | Purpose | |--------|---------| | `BlobServiceClient` | Account-level operations, list containers | | `BlobContainerClient` | Container operations, list blobs | | `BlobClient` | Individual blob operations | ## Core Operations ### Upload Blob ```rust use azure_core::http::RequestContent; let data = b"hello world"; blob_client .upload( RequestContent::from(data.to_vec()), false, // overwrite u64::try_from(data.len())?, None, ) .await?; ``` ### Download Blob ```rust let response = blob_client.download(None).await?; let content = response.into_body().collect_bytes().await?; println!("Content: {:?}", content); ``` ### Get Blob Properties ```rust let properties = blob_client.get_properties(None).await?; println!("Content-Length: {:?}", properties.content_length); ``` ### Delete Blob ```rust blob_client.delete(None).await?; ``` ## Container Operations ```rust use azure_storage_blob::BlobContainerClient; let container_client = BlobContainerClient::new( "https://<account>.blob.core.windows.net/", "container-name", Some(credential), None, )?; // Create container container_client.create(None).await?; // List blobs let mut pager = container_client.list_blobs(None)?; while let Some(blob) = pager.try_next().await? { println!("Blob: {}", blob.name); } ``` ## Best Practices 1. **Use Entra ID auth** โ€” `DeveloperToolsCredential` for dev, `ManagedIdentityCredential` for production 2. **Specify content length** โ€” required for uploads 3. **Use `RequestContent::from()`** โ€” to wrap upload data 4. **Handle async operations** โ€” use `tokio` runtime 5. **Check RBAC permissions** โ€” ensure "Storage Blob Data Contributor" role ## RBAC Permissions For Entra ID auth, assign one of these roles: - `Storage Blob Data Reader` โ€” read-only - `Storage Blob Data Contributor` โ€” read/write - `Storage Blob Data Owner` โ€” full access including RBAC ## Reference Links | Resource | Link | |----------|------| | API Reference | https://docs.rs/azure_storage_blob | | Source Code | https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/storage/azure_storage_blob | | crates.io | https://crates.io/crates/azure_storage_blob |
View on GitHub