cloudflare-r2
Ajuda seu agente a gerenciar armazenamento de objetos na Cloudflare R2. É útil para entregar mídias e economizar em custos de transferência de dados.
O que ela faz
Este agente ajuda a gerenciar o armazenamento de arquivos na Cloudflare R2. Ele permite criar, enviar, baixar e apagar arquivos em "baldes" (buckets) de armazenamento, além de gerar links temporários para acesso.
Quando usar
- ✓Guardar arquivos de usuários, como fotos e vídeos.
- ✓Substituir serviços de armazenamento caros para arquivos acessados frequentemente.
- ✓Compartilhar arquivos grandes temporariamente com outras pessoas.
Exemplo do que pedir para a IA
“Crie um balde chamado 'fotos-viagem' e envie o arquivo 'praia.jpg' para ele.”
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
Você interage com o agente usando comandos de texto. Ele usa ferramentas para se conectar à Cloudflare e realizar as ações que você pede nos seus baldes de armazenamento.
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 cloudflare-r2Ou baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/cloudflare-r2/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.
Cloudflare R2
Armazenamento de objetos compatível com S3, sem taxas de saída (egress), construído na rede global da Cloudflare.
Quando Usar
- Armazenar uploads de usuários, arquivos de mídia, backups ou ativos estáticos.
- Substituir AWS S3 para eliminar custos de saída para cargas de trabalho com muitas leituras.
- Servir arquivos na borda (edge) via Workers ou acesso público ao bucket.
- Construir armazenamento multi-cloud que evita o aprisionamento tecnológico (vendor lock-in) (compatível com API S3).
- Armazenar artefatos de modelos de Machine Learning, dados de treinamento ou resultados de inferência.
Pré-requisitos
- Conta Cloudflare com R2 ativado (dashboard > R2 > assinar).
- Wrangler CLI v3+ instalado:
npm install -g wrangler. - Autenticado via
wrangler loginouCLOUDFLARE_API_TOKEN. - Para acesso à API S3: Token de API R2 criado em R2 > Gerenciar Tokens de API R2.
Gerenciamento de Buckets com Wrangler
Criar e Listar Buckets
# Create a new bucket
npx wrangler r2 bucket create app-assets
# Create a bucket in a specific region (hint for data locality)
npx wrangler r2 bucket create eu-uploads --location=eu
# List all buckets
npx wrangler r2 bucket list
# Delete an empty bucket
npx wrangler r2 bucket delete old-bucket
Operações de Objetos
# Upload a single file
npx wrangler r2 object put app-assets/images/logo.png --file=./logo.png
# Upload with content type
npx wrangler r2 object put app-assets/data/report.json \
--file=./report.json \
--content-type="application/json"
# Download an object
npx wrangler r2 object get app-assets/images/logo.png --file=./downloaded-logo.png
# Delete an object
npx wrangler r2 object delete app-assets/images/old-logo.png
# Get object metadata
npx wrangler r2 object head app-assets/images/logo.png
Acesso Compatível com API S3
R2 suporta a API S3, então ferramentas existentes (AWS CLI, boto3, s3cmd) funcionam imediatamente.
Gerar Tokens de API R2
- Vá para R2 > Gerenciar Tokens de API R2 > Criar token de API.
- Selecione permissões: Leitura e Escrita de Objetos, ou Apenas Leitura de Objetos.
- Escopo para buckets específicos, se possível.
- Salve o ID da Chave de Acesso (Access Key ID) e a Chave de Acesso Secreta (Secret Access Key).
Configuração do AWS CLI
# Configure a named profile for R2
aws configure --profile r2
# Access Key ID: <your-r2-access-key>
# Secret Access Key: <your-r2-secret-key>
# Region: auto
# Output: json
# Use the R2 endpoint
export R2_ENDPOINT="https://<ACCOUNT_ID>.r2.cloudflarestorage.com"
# List buckets
aws s3 ls --endpoint-url=$R2_ENDPOINT --profile=r2
# Sync a directory
aws s3 sync ./dist s3://app-assets/static/ \
--endpoint-url=$R2_ENDPOINT \
--profile=r2
# Copy a file
aws s3 cp ./backup.tar.gz s3://app-assets/backups/backup-$(date +%Y%m%d).tar.gz \
--endpoint-url=$R2_ENDPOINT \
--profile=r2
# List objects with prefix
aws s3 ls s3://app-assets/images/ \
--endpoint-url=$R2_ENDPOINT \
--profile=r2
# Remove objects by prefix
aws s3 rm s3://app-assets/tmp/ --recursive \
--endpoint-url=$R2_ENDPOINT \
--profile=r2
Cliente Python boto3
import boto3
s3 = boto3.client(
"s3",
endpoint_url="https://<ACCOUNT_ID>.r2.cloudflarestorage.com",
aws_access_key_id="<R2_ACCESS_KEY>",
aws_secret_access_key="<R2_SECRET_KEY>",
region_name="auto",
)
# Upload file
s3.upload_file("./report.pdf", "app-assets", "reports/report.pdf")
# Generate presigned URL (valid for 1 hour)
url = s3.generate_presigned_url(
"get_object",
Params={"Bucket": "app-assets", "Key": "reports/report.pdf"},
ExpiresIn=3600,
)
print(url)
# List objects
response = s3.list_objects_v2(Bucket="app-assets", Prefix="images/", MaxKeys=100)
for obj in response.get("Contents", []):
print(f"{obj['Key']} - {obj['Size']} bytes")
Vinculações (Bindings) de Worker
Vincule buckets R2 a Workers ou Pages Functions para acesso do lado do servidor sem tokens de API.
Configuração do Wrangler
# wrangler.toml
name = "asset-worker"
main = "src/index.ts"
compatibility_date = "2024-09-01"
[[r2_buckets]]
binding = "ASSETS"
bucket_name = "app-assets"
[[r2_buckets]]
binding = "UPLOADS"
bucket_name = "user-uploads"
Worker com Operações R2
// src/index.ts
interface Env {
ASSETS: R2Bucket;
UPLOADS: R2Bucket;
}
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const url = new URL(request.url);
// GET — servir arquivo do R2
if (request.method === "GET") {
const key = url.pathname.slice(1); // remove a barra inicial /
const object = await env.ASSETS.get(key);
if (!object) {
return new Response("Não encontrado", { status: 404 });
}
…
Perguntas frequentes
O que é um 'bucket'?
Pense em um bucket como uma pasta ou um contêiner onde você organiza seus arquivos na Cloudflare R2.
Por que usar Cloudflare R2 em vez de outro serviço?
O R2 não cobra taxas extras quando os dados saem dele (egress fees), o que pode economizar muito dinheiro se você acessa seus arquivos com frequência.
Como gero um link para compartilhar um arquivo?
Você pode pedir ao agente para gerar um link temporário (URL assinado) para um arquivo específico, definindo por quanto tempo ele será válido.
Detalhes
Descrição original do autor
Manage Cloudflare R2 buckets, lifecycle, and signed URLs. Use for low-egress object storage and media delivery.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2552
- 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
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC