Guarda los audiolibros en un almacenamiento compatible con S3
Actualizado el 27 de octubre de 2026
Berth puede guardar los libros en cualquier bucket compatible con S3 en lugar del disco del servidor. El servidor guarda la biblioteca y decide quién puede escuchar; el audio en sí puede viajar desde el bucket o una CDN directamente a los teléfonos.
Por qué un almacenamiento de objetos
- Un VPS pequeño o una Raspberry Pi no necesitan un disco grande.
- Los teléfonos descargan directamente del almacenamiento, así que el ancho de banda del servidor no hace de cuello de botella.
- La base de datos y sus copias siguen siendo pequeñas; con S3 el servidor también puede guardar cada día una copia de la base de datos en el bucket.
Proveedores compatibles
Sirve cualquier servicio compatible con S3. El panel web tiene ajustes predefinidos que rellenan el endpoint y la región para AWS S3, Cloudflare R2, Yandex Cloud, Backblaze B2, Bunny Storage y MinIO. Para Cloudflare R2 hay además un asistente que crea el bucket y las claves por ti.
Conectar un bucket
- En la consola de tu proveedor, crea un bucket y una clave de acceso con permisos de lectura y escritura sobre él.
- Añade una regla CORS al bucket: origen, tu dirección de Berth; métodos, GET, HEAD, PUT; cabeceras,
*. El panel web sube los archivos desde el navegador directamente al bucket, así que esta regla es obligatoria. - En el panel web de Berth abre los ajustes de almacenamiento, añade un almacenamiento, elige «Bucket S3» y escoge un ajuste predefinido o rellena los campos tú mismo.
- Rellena nombre, bucket, endpoint (vacío para AWS), región (
us-east-1si se deja vacía), ID de clave de acceso y clave de acceso secreta. Activa las direcciones de tipo ruta para MinIO; se activan solas con una dirección IP o localhost. - Pulsa «Comprobar conexión»: Berth escribe, vuelve a leer y borra un pequeño archivo de prueba y comprueba CORS desde las direcciones de tu servidor.
- Haz que el almacenamiento sea el predeterminado: los libros nuevos van al almacenamiento predeterminado.
Las claves se guardan cifradas con la clave del servidor, secret.key, y no se vuelven a mostrar nunca.
Cómo llega el audio a los teléfonos
Sin firma, los archivos detrás de una CDN se abren con un enlace que no caduca nunca. Sus nombres son hashes SHA-256 y no se pueden adivinar, pero revocar un dispositivo no cierra los enlaces que ya tiene. La autenticación por token de Bunny CDN hace que los enlaces caduquen a las 6 horas.
| Modo | Cómo funciona | Cuándo usarlo |
|---|---|---|
| Enlaces directos (predeterminado) | Los teléfonos reciben un enlace firmado al bucket que dura 15 minutos | Quita carga al servidor |
| A través del servidor | El servidor transmite el archivo; los enlaces duran 6 horas y dejan de funcionar al instante cuando se revoca un dispositivo | Los teléfonos no pueden acceder al bucket |
| A través de una CDN | Los enlaces apuntan a una CDN o a una dirección pública del bucket | Lo más rápido cuando el bucket tiene una CDN |
Conviene saber
- Puedes tener varios almacenamientos a la vez; cada libro muestra en cuál está.
- Todavía no se pueden mover libros existentes entre almacenamientos: elige el almacenamiento predeterminado antes de subirlos.
- Un almacenamiento que contiene libros no se puede eliminar. Eliminar un perfil nunca borra archivos del bucket.
Preguntas
¿Berth necesita acceso público al bucket?
No. En el modo predeterminado el bucket sigue siendo privado y los teléfonos reciben enlaces firmados que caducan a los 15 minutos.
La comprobación dice que el bucket no acepta subidas desde un navegador. ¿Qué hago?
Añade la regla CORS: origen, la dirección de Berth; métodos, GET, HEAD, PUT; cabeceras, *. Después vuelve a ejecutar la comprobación.