Introdução à Presigned URLs na Cloudflare
Presigned URLs na Cloudflare
As Presigned URLs na Cloudflare são um conceito do S3 que permite o compartilhamento de acesso direto ao seu bucket sem expor seu token secreto.
Essencialmente, um Presigned URL autoriza qualquer pessoa com o URL a executar uma ação no endpoint de compatibilidade S3 para um bucket R2 específico. Por padrão, o endpoint S3 exige um cabeçalho de AUTHORIZATION
assinado pelo seu token.
Cada Presigned URL possui parâmetros S3 e parâmetros de pesquisa contendo as informações de assinatura que estariam presentes em um cabeçalho de AUTHORIZATION
. A ação realizável é restrita a um recurso específico, uma operação e possui um tempo limite associado.
Existem três tipos de recursos em R2:
- Conta (Account): Para operações no nível da conta (como
CreateBucket
,ListBuckets
,DeleteBucket
), o identificador é o ID da conta. - Bucket: Para operações no nível do bucket (como
ListObjects
,PutBucketCors
), o identificador é o ID da conta e o nome do bucket. - Objeto (Object): Para operações no nível do objeto (como
GetObject
,PutObject
,CreateMultipartUpload
), o identificador é o ID da conta, o nome do bucket e o caminho do objeto.
Observação
Todas as partes do identificador fazem parte do Presigned URL.
Não é possível alterar o recurso sendo acessado após a assinatura da solicitação. Por exemplo, tentar alterar o nome do bucket para acessar o mesmo objeto em um bucket diferente resultará em um código de erro 403 com o código de erro SignatureDoesNotMatch
.
O R2 suporta os seguintes métodos HTTP ao gerar uma URL pré-assinada:
GET
para recuperar um objetoHEAD
para obter metadadosPUT
para enviar um objetoDELETE
para excluir um objeto.
Atenção
POST
, utilizado para uploads via formulários HTML nativos, não é atualmente suportado.