Ir al contenido
Shareboxed

Configurar un bucket de Cloudflare R2 para Shareboxed

Shareboxed sube los archivos directamente a un bucket de R2 que es tuyo. Los archivos conservan su propio nombre y siguen visibles en tu dashboard. R2 se direcciona por cuenta y no por región, así que la conexión pide un account id en lugar de un endpoint.

1. Crea el bucket

npx wrangler r2 bucket create my-uploads

O en el dashboard: R2 → Create bucket. Deja el acceso público desactivado (es lo predeterminado).

2. Crea un API token

R2 → API → Manage API tokens → Create API Token, con el permiso Object Read & Write, limitado al bucket que acabas de crear. El Access Key ID y el Secret Access Key se muestran una sola vez.

Pégalos en la conexión en Shareboxed:

Campo Valor
Account ID R2 → Overview, en el panel Account details
Bucket name my-uploads
Credentials el Access Key ID y el Secret Access Key del token
Folder opcional, un prefix dentro del bucket

También funciona pegar el endpoint S3 completo del token en el campo Account ID; la app saca de ahí el account id.

3. Opcional: aborta las subidas incompletas

Tu bucket → Settings → Object lifecycle rules → Add rule, activa Abort incomplete multipart uploads al cabo de 1 día.

4. Opcional: borra las subidas al cabo de 7 días

Una segunda lifecycle rule: Delete objects al cabo de 7 días, limitada al prefix que le diste a Shareboxed en Folder.

Activar los enlaces de descarga de Shareboxed

Desactivados por defecto. Con el interruptor activado (ajustes de la conexión → Sharing), al terminar una subida también se copia un enlace de shareboxed.app desde el que cualquiera puede descargar. Un enlace vive siete días, como todo lo que se comparte con Shareboxed; al desactivar el ajuste se borra la clave guardada y todos los enlaces activos de esta conexión dejan de funcionar a la vez.

El bucket necesita dos cosas para que esos enlaces funcionen.

1. El token tiene que poder volver a leer lo que ha escrito. Object Read & Write lo cubre. Un token de solo escritura firma bien las subidas y falla en todas las descargas.

2. Permite que la página de descarga lea los bytes (CORS). En tu bucket → Settings → CORS policy → Edit:

[
    {
        "AllowedOrigins": ["https://shareboxed.app"],
        "AllowedMethods": ["GET", "HEAD"],
        "AllowedHeaders": ["*"],
        "MaxAgeSeconds": 3600
    }
]

Cuando algo no funciona

Pulsa Test Connection primero. Esto es lo que puede decir:

Test Connection dice Solución
Missing credentials Los campos Credentials están vacíos o no se guardaron. Vuelve a introducir la key y el secret.
Invalid credentials El secret es incorrecto, el token se borró, o el Account ID no es el de la cuenta de este token.
Insufficient permissions El token está limitado a otro bucket.
Bucket not found Hay una errata en el nombre del bucket. En R2 los nombres distinguen mayúsculas y minúsculas.
Not reachable El Account ID está mal formado, o no respondió nada. Cópialo de R2 → Overview.
Missing CORS rule Los enlaces de descarga están activados, pero el bucket no tiene una regla CORS para https://shareboxed.app.
Server errored Falló la propia Cloudflare. Inténtalo de nuevo y mira la página de estado de Cloudflare.

Uno más que solo aparece después:

  • Quien recibe el enlace ve "Connection refused, please ask the sender to check on the permissions": falta la regla CORS, o el token se creó de solo escritura y no puede volver a leer lo que escribió. Object Read & Write arregla las dos mitades.

¿Usas S3 también en otro sitio? La guía de S3 cubre AWS, Backblaze B2 y MinIO, y también R2 a través de ese mismo tipo de conexión S3.