Almacenamiento de objetos S3 para Nextcloud
Convierte OtterStorage en el disco infinito de tu Nextcloud: almacenamiento de objetos S3 escalable, sin sorpresas por peticiones ni por borrados.
Nextcloud es la plataforma de archivos y colaboración autoalojada más extendida, pero su talón de Aquiles es el almacenamiento: el disco local del servidor se llena, escalar significa migrar volúmenes y los backups crecen sin control. OtterStorage resuelve esto ofreciendo almacenamiento de objetos compatible con S3 que Nextcloud puede usar de forma nativa, ya sea como almacenamiento primario de toda la instancia o como almacenamiento externo montado para usuarios y grupos concretos.
El problema
Una instancia de Nextcloud que crece se topa con limitaciones del disco local del servidor:
- Capacidad finita. El volumen del servidor tiene un tope físico y ampliarlo implica downtime, migración de datos y, a menudo, sobreaprovisionar "por si acaso".
- Backups pesados. A más datos en disco local, más tardan y más ocupan las copias de seguridad de la instancia completa.
- Escalado rígido. Repartir la carga entre varios nodos de aplicación se complica cuando los archivos viven en un disco local en lugar de en un almacén central.
- Costes opacos. Con muchos proveedores de objetos, cada miniatura generada, cada sincronización del cliente de escritorio y cada borrado se traduce en peticiones facturables. Nextcloud genera muchísimas peticiones, así que esa factura se dispara.
La solución con OtterStorage
OtterStorage expone un endpoint S3 compatible en https://s3.otterstorage.io que Nextcloud entiende de forma nativa. En lugar de escribir los archivos en el disco del servidor, Nextcloud los guarda como objetos en tu bucket, con capacidad que crece según lo necesites.
- Sin coste por peticiones ni por borrados. Esto es decisivo con Nextcloud, que lee, escribe, lista y borra objetos constantemente (miniaturas, sincronización, previsualizaciones). Con OtterStorage solo pagas por lo que almacenas, no por la cantidad de operaciones.
- Capacidad elástica. El bucket no se "llena": añade usuarios y archivos sin tocar el servidor ni planificar ampliaciones de disco.
- Credenciales por bucket. Cada bucket tiene su propia access key y secret key, así puedes aislar la instancia de Nextcloud del resto de tus cargas.
- Inmutabilidad opcional. Para datos críticos puedes activar Object Lock (OtterVault) y Legal Hold a nivel de bucket, de modo que los objetos no se puedan modificar ni borrar durante el periodo de retención. Útil para cumplimiento normativo y protección anti-ransomware.
Tienes dos formas de conectar Nextcloud con OtterStorage. Elige según quieras mover toda la instancia o solo carpetas concretas.
Cómo configurarlo
Antes de empezar, crea un bucket en tu panel de OtterStorage y genera sus credenciales. Necesitarás estos valores en ambos modos:
- Endpoint / hostname:
s3.otterstorage.io - Región:
eu-mad - Bucket: el nombre que hayas elegido (p. ej.
mi-nextcloud) - Access key y secret key del bucket
Modo 1: Almacenamiento primario (Primary Object Storage)
Este modo hace que toda la instancia de Nextcloud guarde sus archivos en OtterStorage. Es la opción recomendada para instalaciones nuevas o para quienes quieren un único almacén central. Se configura editando el fichero config/config.php de Nextcloud y añadiendo el bloque objectstore:
'objectstore' => [
'class' => '\\OC\\Files\\ObjectStore\\S3',
'arguments' => [
'bucket' => 'mi-nextcloud',
'autocreate' => true,
'key' => 'TU_ACCESS_KEY',
'secret' => 'TU_SECRET_KEY',
'hostname' => 's3.otterstorage.io',
'port' => 443,
'use_ssl' => true,
'region' => 'eu-mad',
// OtterStorage usa direccionamiento por ruta (path-style):
'use_path_style' => true,
],
],
Notas importantes sobre este modo:
use_path_style => truehace que las peticiones usen la formahttps://s3.otterstorage.io/mi-nextcloud/...en lugar de un subdominio por bucket. Es lo recomendado con OtterStorage.- Configúralo en una instancia vacía. Activar el almacenamiento primario en un Nextcloud que ya tiene archivos en disco local no los migra automáticamente. Si ya tienes datos, planifica la migración antes de cambiar la configuración.
- Con
'autocreate' => trueNextcloud creará el bucket si no existe. Si prefieres crearlo tú desde el panel, ponlo enfalse. - En object storage, todos los archivos de todos los usuarios viven en el mismo bucket identificados por un urn interno; los metadatos y la estructura de carpetas siguen viviendo en la base de datos de Nextcloud, así que mantén también sus copias de seguridad.
Modo 2: Almacenamiento externo (External Storage app)
Este modo monta OtterStorage como una carpeta adicional dentro de Nextcloud, sin tocar el almacenamiento del resto de la instancia. Es ideal cuando ya tienes Nextcloud en marcha y solo quieres dar a determinados usuarios o grupos acceso a un bucket. Pasos:
- Activa la app External storage support desde
Apps(en la categoría "Files"). - Ve a
Ajustes → Administración → Almacenamiento externo. - Añade un almacenamiento nuevo y elige el tipo Amazon S3 (es compatible con OtterStorage).
- Rellena los campos de conexión:
Carpeta mi-bucket-externo
Bucket mi-nextcloud
Hostname s3.otterstorage.io
Port 443
Region eu-mad
Enable SSL sí
Enable Path Style sí
Access key TU_ACCESS_KEY
Secret key TU_SECRET_KEY
Guarda y comprueba que el indicador de estado se pone en verde. A partir de ahí, los usuarios o grupos asignados verán la carpeta montada y trabajarán contra el bucket de OtterStorage de forma transparente.
¿Cuál de los dos elegir?
- Almacenamiento primario si montas una instancia nueva o quieres que todo Nextcloud viva en object storage. Máxima escalabilidad y un único almacén central.
- Almacenamiento externo si ya tienes Nextcloud funcionando y solo necesitas añadir capacidad, compartir un bucket concreto con ciertos usuarios o probar OtterStorage sin migrar nada.
Recomendaciones de rendimiento
- No te preocupes por el número de peticiones. Nextcloud genera un volumen alto de operaciones S3 (sincronización, miniaturas, previsualizaciones, comprobaciones de integridad). Con OtterStorage no se cobra por peticiones ni por borrados, así que puedes activar previsualizaciones y sincronización agresiva sin temor a la factura.
- Cron en lugar de AJAX. Configura los trabajos en segundo plano de Nextcloud con cron del sistema para que las operaciones contra el bucket no bloqueen la interfaz del usuario.
- Limita la pre-generación de miniaturas. Aunque las peticiones no cuestan, generar previsualizaciones de tamaños que nadie usa sí consume CPU y almacenamiento. Ajusta
preview_max_x,preview_max_yy los proveedores de previsualización a lo que realmente necesites. - Cercanía de red. Si tu servidor de aplicación está cerca de la región
eu-mad, la latencia por operación es menor y la sincronización va más fluida. - Mantén un caché local de objetos pequeños. Usar Redis/APCu para metadatos y bloqueo de ficheros reduce el trabajo y mejora mucho la sensación de velocidad.
Beneficios
- Crecimiento sin límites. Tu Nextcloud deja de depender del tamaño del disco del servidor.
- Costes predecibles. Pagas por lo almacenado, no por las millones de peticiones ni por los borrados que genera Nextcloud.
- Servidor de aplicación más ligero. El disco local se libera y los nodos de aplicación se vuelven prácticamente sin estado, lo que facilita escalar y reemplazarlos.
- Datos protegibles. Con Object Lock (OtterVault) y Legal Hold a nivel de bucket puedes hacer inmutables los datos sensibles frente a borrados accidentales o ransomware.
- Estándar abierto. Al ser S3 compatible, no quedas atado: la misma configuración te sirve para herramientas de migración y de respaldo.
¿Quieres una estrategia completa de copias? Combina esta integración con nuestra guía de backups para proteger tanto los archivos como la base de datos de Nextcloud. Y si necesitas el detalle de parámetros y credenciales, todo está en la documentación.
¿Lo montamos juntos?
Migración asistida para los Founding Otters.