azure-storage-blob-rust
Ajuda seu agente a gerenciar arquivos (blobs) no Azure usando Rust. É útil para carregar, baixar e organizar dados na nuvem.
O que ela faz
Esta ferramenta ajuda programas escritos em Rust a guardar e buscar arquivos (chamados 'blobs') no armazenamento em nuvem da Microsoft Azure. Você pode usar para enviar, baixar e organizar esses arquivos.
Quando usar
- ✓Quando seu programa precisa salvar um arquivo grande na nuvem.
- ✓Quando seu programa precisa baixar um arquivo que está guardado na nuvem.
- ✓Quando seu programa precisa listar ou apagar arquivos em um local específico na nuvem.
Exemplo do que pedir para a IA
“Como faço para meu programa Rust enviar um arquivo para o Azure Blob Storage?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O programa usa uma 'biblioteca' especial (SDK) que se comunica com o Azure. Ele precisa de informações de acesso e, em seguida, usa comandos específicos para enviar, baixar ou gerenciar os arquivos.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill azure-storage-blob-rustOu baixe só o arquivo:
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.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
SDK do Azure Blob Storage para Rust
Biblioteca cliente para o Azure Blob Storage — a solução de armazenamento de objetos da Microsoft na nuvem.
Os exemplos abaixo exigem um conjunto de crates compatíveis revisados e a substituição de cada placeholder de recurso. Não use dados de produção para gravações de demonstração.
Instalação
cargo add azure_storage_blob@=1.1.0 azure_identity@=1.0.0 azure_core@=1.1.0
Variáveis de Ambiente
export AZURE_STORAGE_ACCOUNT_NAME="<storage-account-name>"
# Endpoint: https://<account>.blob.core.windows.net/
Autenticação
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()),
)?;
Tipos de Cliente
| Cliente | Propósito |
|---|---|
BlobServiceClient |
Operações em nível de conta, listar contêineres |
BlobContainerClient |
Operações de contêiner, listar blobs |
BlobClient |
Operações de blob individual |
Operações Principais
Upload de 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 de 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.
Obter Propriedades do Blob
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.
Excluir Blob
blob_client.delete(None).await?;
Operações de Contêiner
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.
}
Melhores Práticas
- Use autenticação do Entra ID —
DeveloperToolsCredentialpara desenvolvimento,ManagedIdentityCredentialpara produção - Revise o comportamento de sobrescrita — a API de upload revisada usa opções;
if_not_existsimpede substituições não intencionais - Use
RequestContent::from()— para encapsular dados de upload - Manipule operações assíncronas — use o runtime
tokio - Verifique as permissões RBAC — garanta a função "Colaborador de Dados do Blob de Armazenamento"
Permissões RBAC
Para autenticação do Entra ID, atribua uma destas funções:
Storage Blob Data Reader— somente leituraStorage Blob Data Contributor— leitura/escritaStorage Blob Data Owner— acesso a dados de blob e gerenciamento de propriedade/ACL compatível; não concede autoridade geral de atribuição de função RBAC do Azure
A API de exemplo segue o BlobClient 1.1.0; versões anteriores usavam assinaturas de construtor/upload diferentes. Use as versões de crate Azure compatíveis do projeto em vez de misturá-las.
O conjunto de exemplos revisado usa azure_storage_blob 1.1.0 e crates de credenciais/núcleo Azure compatíveis. Registre e confirme o Cargo.lock; a revisão de código-fonte/API não é um teste de compilador ou de serviço ativo.
Links de Referência
| Recurso | Link |
|---|---|
| Referência da API | https://docs.rs/azure_storage_blob |
| Código-fonte | https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/storage/azure_storage_blob |
| crates.io | https://crates.io/crates/azure_storage_blob |
Quando Usar
Use quando um aplicativo Rust faz upload/download de um blob Azure especificado, lê suas propriedades ou gerencia um contêiner autorizado.
Limitações
…
Perguntas frequentes
O que é um 'blob'?
Um 'blob' é apenas um termo técnico para um arquivo guardado no Azure, como uma foto, um documento ou qualquer outro tipo de dado.
O que significa 'armazenamento em nuvem'?
É um espaço para guardar seus arquivos em computadores remotos (servidores) que você acessa pela internet, em vez de guardá-los no seu próprio computador.
Preciso saber programar em Azure para usar isso?
Este SDK é para quem já programa em Rust. Ele simplifica a interação com o Azure, mas você ainda precisa ter um conhecimento básico de como o Azure funciona e como programar em Rust.
Detalhes
Descrição original do autor
Azure Blob Storage SDK for Rust. Use for uploading, downloading, and managing blobs and containers.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2380
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
api-connector-builder
Faz seu agente construir novas conexões com APIs seguindo o padrão já existente. Use quando precisar adicionar mais uma integração sem criar um novo jeito de fazer.
affaan-m/ECC
api-design
Ajuda seu agente a projetar APIs REST seguindo as melhores práticas. É útil para definir como as APIs se comunicam, como os erros são mostrados e como organizar os dados.
affaan-m/ECC
backend-patterns
Ajuda seu agente com padrões de arquitetura do lado do servidor e otimização de banco de dados. É útil para construir ou revisar o código que roda no servidor.
affaan-m/ECC