Adicionar um canal Cloudflare R2
Melhor uso
Use o Cloudflare R2 quando:
- Seu site ImgHost já estiver implantado na Cloudflare e você quiser armazenar arquivos em um bucket R2 da mesma conta Cloudflare.
- Você não quiser configurar separadamente endpoint S3, access key e secret key.
- Você quiser que leituras e gravações passem pelo binding R2 do Worker ou Pages com configuração mínima.
Em resumo:
O canal R2 não é criado manualmente no painel de administração do ImgHost. Primeiro, vincule um bucket R2 ao projeto Cloudflare. O nome da variável de binding deve ser img_r2.
O que você precisa antes de começar
- Uma conta Cloudflare.
- Um bucket R2 existente.
- Permissão para gerenciar o projeto Cloudflare em que o ImgHost está implantado.
Configurar na Cloudflare
1. Crie um bucket R2
- Entre no Cloudflare Dashboard.
- Abra
R2 Object Storage. - Clique em Create bucket.
- Escolha um nome de bucket, por exemplo
imgbed.
Esse bucket será o local em que os arquivos enviados serão armazenados.

2. Vincule o bucket ao projeto ImgHost
Escolha o local do binding conforme o tipo de implantação:
| Tipo de implantação | Local do binding |
|---|---|
| Pages | Current Pages project -> Settings -> Functions -> R2 bucket bindings |
| Worker | Current Worker -> Settings -> Bindings -> R2 bucket bindings |
Ao adicionar o binding, os campos importantes são:
| Campo | Valor |
|---|---|
| Variable name | img_r2 |
| R2 bucket | Selecione o bucket que você criou. |
O nome da variável deve ser exatamente img_r2. Upload, leitura e exclusão de arquivos R2 dependem desse nome de binding.
3. Reimplante o projeto
Depois de salvar o binding, reimplante o ImgHost para que o runtime do Worker ou Pages consiga acessar img_r2.
O que você verá no ImgHost
Depois que o binding R2 estiver disponível, abra:
- Configurações do sistema.
- Configurações de upload.
- O canal
Cloudflare R2.
O sistema cria automaticamente um canal fixo:
| Campo | Valor fixo |
|---|---|
| Nome do canal | Cloudflare R2 |
| Tipo de canal | cfr2 |
| Modo de armazenamento | binding |
| Origem da configuração | Binding de ambiente |
Este é um canal de binding fixo. Você não precisa clicar em Adicionar canal para criá-lo, e ele não pode ser excluído como um canal comum.
Campos editáveis no painel de administração
| Campo | O que faz | Obrigatório |
|---|---|---|
| Habilitar canal | Controla se o R2 participa da seleção de upload. | Sim |
| Account ID | Usado somente quando limites de cota estão habilitados e o uso oficial do R2 precisa ser consultado. | Recomendado quando limites de cota estão habilitados |
| Bucket name | Usado somente quando limites de cota estão habilitados e o uso oficial do R2 precisa ser consultado. | Recomendado quando limites de cota estão habilitados |
| Limite de cota | Controla se este canal R2 participa da seleção de upload com base na capacidade. | Não |
| Limiar | Interrompe gravações neste canal quando o uso atinge a porcentagem especificada. | Obrigatório quando limites de cota estão habilitados |
Você pode copiar o Account ID no painel de informações da conta no Cloudflare dashboard. Preencha-o somente se quiser que o ImgHost consulte e aplique o uso de cota do R2.

Etapas de configuração
- Crie um bucket R2 na Cloudflare.
- Abra as configurações da Cloudflare para o projeto ImgHost.
- Adicione um binding de bucket R2.
- Defina
Variable namecomoimg_r2. - Selecione o bucket R2 que você criou.
- Salve o binding e reimplante o ImgHost.
- Volte para ImgHost -> Configurações do sistema -> Configurações de upload.
- Confirme que o canal
Cloudflare R2aparece e está habilitado.
Se quiser que o R2 participe da seleção de upload com base na capacidade, habilite o limite de cota e informe Account ID, nome do bucket, limite de cota e limiar antes de salvar.

Como verificar
- O canal fixo
Cloudflare R2aparece em Configurações de upload. - O cartão do canal mostra que ele está habilitado.
- Um pequeno arquivo de teste é enviado com sucesso, e o link retornado abre normalmente.
- Se abrir um arquivo retornar
R2 database binding is not configured, o runtime não recebeu o bindingimg_r2. Verifique o nome do binding na Cloudflare e reimplante o projeto.