azure-storage-blob-rust
Helps your agent manage files (blobs) on Azure using Rust. Useful for uploading, downloading, and organizing cloud data.
What it does
This tool helps programs written in Rust to store and retrieve files (called 'blobs') in Microsoft Azure's cloud storage. You can use it to upload, download, and manage these files.
When to use it
- ✓When your program needs to save a large file to the cloud.
- ✓When your program needs to download a file stored in the cloud.
- ✓When your program needs to list or delete files in a specific cloud location.
Example of what to ask your AI
“How can my Rust program upload a file to Azure Blob Storage?”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The program uses a special 'library' (SDK) that communicates with Azure. It needs access information and then uses specific commands to upload, download, or manage files.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill azure-storage-blob-rustOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-storage-blob-rust/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Azure Blob Storage SDK for Rust
Client library for Azure Blob Storage — Microsoft's object storage solution for the cloud.
The examples below require a reviewed compatible crate set and replacement of every resource placeholder. Do not use production data for demonstration writes.
Installation
cargo add azure_storage_blob@=1.1.0 azure_identity@=1.0.0 azure_core@=1.1.0
Environment Variables
export AZURE_STORAGE_ACCOUNT_NAME="<storage-account-name>"
# Endpoint: https://<account>.blob.core.windows.net/
Authentication
use azure_identity::DeveloperToolsCredential;
use azure_core::http::Url;
use azure_storage_blob::clients::{BlobClient, BlobClientOptions};
let credential = DeveloperToolsCredential::new(None)?;
let blob_client = BlobClient::new(
Url::parse("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
use azure_core::http::RequestContent;
use azure_storage_blob::models::BlobClientUploadOptions;
let data = b"hello world";
blob_client
.upload(
RequestContent::from(data.to_vec()),
Some(BlobClientUploadOptions::if_not_exists()), // fail rather than overwrite an existing blob
)
.await?;
Download Blob
let response = blob_client.download(None).await?;
// Check the approved size before fetching; use download_into with a bounded buffer for large data.
let content = response.body.collect().await?;
// Process authorized bytes; do not log the payload.
Get Blob Properties
let properties = blob_client.get_properties(None).await?;
// Read the version-specific response header trait; properties is a response, not a content_length field.
// Do not infer a body/size limit from successful metadata access alone.
Delete Blob
blob_client.delete(None).await?;
Container Operations
use azure_storage_blob::clients::BlobContainerClient;
use futures::TryStreamExt;
let container_client = BlobContainerClient::new(
Url::parse("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(page) = pager.try_next().await? {
let listing = page.into_model()?;
// Process this listing page; apply an explicit maximum-page budget.
}
Best Practices
- Use Entra ID auth —
DeveloperToolsCredentialfor dev,ManagedIdentityCredentialfor production - Review overwrite behavior — the reviewed upload API uses options; if_not_exists prevents unintended replacement
- Use
RequestContent::from()— to wrap upload data - Handle async operations — use
tokioruntime - 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-onlyStorage Blob Data Contributor— read/writeStorage Blob Data Owner— blob-data access and supported ownership/ACL management; it does not grant general Azure RBAC role-assignment authority
The example API follows BlobClient 1.1.0; earlier releases used different constructor/upload signatures. Use the project’s compatible Azure crate versions rather than mixing them.
The reviewed example set uses azure_storage_blob 1.1.0 and compatible Azure core/credential crates. Record and commit Cargo.lock; source/API review is not a compiler or live-service test.
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 |
When to Use
Use when a Rust application uploads/downloads a specified Azure blob, reads its properties or manages an authorized container.
Limitations
…
FAQ
What is a 'blob'?
A 'blob' is just a technical term for a file stored in Azure, like a photo, a document, or any other type of data.
What does 'cloud storage' mean?
It's a place to store your files on remote computers (servers) that you access over the internet, instead of storing them on your own computer.
Do I need to know Azure programming to use this?
This SDK is for those who already program in Rust. It simplifies interaction with Azure, but you still need basic knowledge of how Azure works and how to program in Rust.
Details
Original description by the author
Azure Blob Storage SDK for Rust. Use for uploading, downloading, and managing blobs and containers.
Popularity
- GitHub stars
- 48k
- Ranking position
- #2380
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
api-connector-builder
Has your agent build new API connections following the existing pattern. Use when you need to add one more integration without creating a new way of doing things.
affaan-m/ECC
api-design
Helps your agent design REST APIs following best practices. It's useful for defining how APIs communicate, how errors are shown, and how to organize data.
affaan-m/ECC
backend-patterns
Helps your agent with server-side architecture patterns and database optimization. It's useful for building or reviewing code that runs on the server.
affaan-m/ECC