trilha

Tecnologias/04 - Armazenamento de Objetos/02 - Cloudflare R23 min

Acesso Público, URLs Assinadas e CORS no R2

Formas de acesso

Forma Como o cliente acessa
API S3 autenticada Envia operações assinadas com credenciais do R2
Binding em Worker O Worker usa a API R2 no seu ambiente
URL assinada Usa uma autorização temporária para uma operação sobre um objeto
Bucket público Lê objetos por um endereço público habilitado

A escolha define onde a aplicação verifica permissões. Um Worker pode aplicar uma regra de autorização antes de devolver conteúdo de um bucket privado.

Bucket público e domínio

O R2 permite expor um bucket por domínio próprio ou pelo endereço de desenvolvimento r2.dev. O segundo tem limitação de taxa e é destinado a desenvolvimento. Domínios próprios permitem integrar recursos de cache e controle de tráfego da Cloudflare.

Esses acessos são independentes: desligar um domínio não desliga automaticamente outro. Se um caminho público continuar habilitado, o objeto pode continuar acessível por ele, mesmo que a aplicação principal exija login. Referência: buckets públicos.

URL assinada

Uma URL assinada carrega uma autorização temporária vinculada à operação e ao objeto. Permite que o cliente faça um upload ou download sem receber a credencial usada para assinar as requisições.

1. O usuario solicita o download do relatorio 42.
2. A API verifica se ele pode acessar esse relatorio.
3. A API gera uma URL de GET para a chave correspondente.
4. O cliente baixa o arquivo diretamente do R2 dentro do prazo.

Quem obtém a URL pode usá-la durante sua validade. Ela não deve ser interpretada como um link automaticamente restrito à pessoa que o recebeu ou de uso único.

URLs assinadas S3 do R2 usam o domínio da API <ACCOUNT_ID>.r2.cloudflarestorage.com; não funcionam diretamente em domínios próprios. Referência: presigned URLs.

CORS

CORS informa ao navegador quais origens, métodos e cabeçalhos podem participar do acesso entre sites. Um upload feito por JavaScript no navegador pode exigir uma política que aceite sua origem, o método e os cabeçalhos enviados.

CORS não autentica o usuário nem protege o objeto contra clientes fora do navegador. Uma URL assinada válida e uma política CORS adequada resolvem partes diferentes do fluxo: autorização da operação e permissão de acesso pelo navegador. Referência: CORS no R2.

Aprofundamento aplicado

Upload direto com autorização na aplicação

Um fluxo de upload pode ter quatro participantes: navegador, API, armazenamento e processador do arquivo. A API primeiro verifica o usuário e escolhe a chave; só então assina a operação permitida. O cliente envia diretamente ao armazenamento e a aplicação verifica conclusão e metadados antes de publicar o arquivo como pronto.

Se a assinatura vincula cabeçalhos como Content-Type, o cliente precisa enviar os valores correspondentes. Mudar método, caminho ou cabeçalho assinado pode invalidar a requisição. O preflight CORS é outra etapa, feita pelo navegador. Referência: URLs assinadas.

Sintoma Investigação inicial
Funciona fora do navegador, falha nele CORS, origem e cabeçalhos
Assinatura rejeitada Método, expiração, endpoint e campos assinados
Upload terminou, cadastro segue pendente Confirmação e reconciliação na aplicação

Exercício: registre a sequência de chamadas, incluindo OPTIONS quando houver preflight. Resultado esperado: explique qual componente decide autorização e qual controla a permissão do navegador para consumir a resposta.

Relacionado: 1. Cloudflare R2 · 3. API S3, Custos e Limitações do R2.


Parte de Cloudflare R2

Buscar

Busca por título, seção e texto das notas