Descripción
DiluxOne Offload mueve tu biblioteca de medios de WordPress a Azure Blob Storage y sirve los archivos directamente desde la nube — sin romper la interfaz de la Biblioteca de medios, los plugins ni el contenido existente.
El plugin usa un stream wrapper de PHP personalizado para interceptar cada lectura y escritura en /wp-content/uploads/, así que WordPress, WooCommerce, los constructores de páginas, los editores de imágenes y cualquier plugin que llame a funciones estándar del sistema de archivos (fopen, file_get_contents, unlink, etc.) siguen funcionando sin cambios.
Características principales
- Azure Blob Storage — usa tu propia cuenta de almacenamiento; nada se comparte con nadie más.
- Stream wrapper transparente — sin reescritura de URLs, sin expresiones regulares sobre el contenido de los posts, sin migración de base de datos requerida para las URLs.
- Sincronización con máquina de estados reanudable — iniciar, cancelar, reanudar tras una interrupción, reintentar archivos fallidos, resincronizar desde cero.
- Modo offloading — después de una sincronización exitosa puedes eliminar las copias locales para liberar espacio en disco; el stream wrapper mantiene todo funcionando.
- Monitoreo de la salud de la conexión — cuando la nube no está disponible, las subidas nuevas se rechazan con un error claro en lugar de terminar en otro lado, y un banner en las páginas de administración del plugin explica por qué hasta que se recupera.
- Sin datos del plugin en disco — sin archivos de caché, de log ni de datos en ningún lado del servidor. La única vez que el plugin escribe en el directorio de subidas (uploads) es cuando te desconectas, para copiar tus propios archivos multimedia de vuelta a donde WordPress los espera.
- Los archivos grandes no necesitan mucha memoria — una descarga va directo a disco, y una subida se envía en bloques de 4 MiB, así que PHP nunca retiene más de un bloque de un archivo a la vez y un video no dispara el
memory_limit. - Compatible con multisite — se admite la activación a nivel de red; cada sitio conserva su propia configuración y su propio seguimiento de archivos, y sus objetos viven bajo su propio prefijo en el contenedor (
uploads/para el sitio principal,uploads/sites/<id>/para los demás, el mismo esquema que usa WordPress en disco), así varios sitios pueden compartir un contenedor sin compartir nunca una clave. - Silencioso por defecto — con
WP_DEBUGdesactivado y el interruptor de Settings desactivado, el plugin no escribe nada en el log de errores de PHP, a ningún nivel.WP_DEBUGactiva errores y advertencias; el interruptor agrega las líneas informativas.
Por qué un stream wrapper en lugar de reescritura de URLs
La mayoría de los plugins de offload reescriben las URLs de los archivos multimedia en el contenido de los posts, lo cual se rompe cuando cambias de proveedor, mudas de dominio o restauras desde una copia de seguridad. DiluxOne Offload deja las URLs intactas y reescribe las lecturas/escrituras en la capa del sistema de archivos, así que tu contenido se mantiene portable.
Limitaciones conocidas
- Un proveedor: Azure Blob Storage. El contenedor debe permitir lectura anónima de blobs (nivel de acceso público Blob); un contenedor privado se rechaza.
- La sincronización inicial se ejecuta en la pestaña de tu navegador y se detiene si la cierras; se reanuda donde quedó. Nada se ejecuta en segundo plano ni por cron.
- Los archivos que superan el ajuste de Maximum File Size (20 MB por defecto, hasta 500 MB) se omiten en la sincronización inicial.
- Mientras la nube no esté disponible, las subidas nuevas fallan. Deliberadamente no hay una alternativa local.
- Sin opción de CDN ni dominio personalizado: los archivos multimedia se sirven desde la URL de tu cuenta de almacenamiento.
- Disconnect from Cloud necesita un directorio de subidas (uploads) con permisos de escritura y suficiente espacio en disco para tus archivos multimedia.
Servicios externos
Este plugin se conecta a Azure Blob Storage, un servicio de almacenamiento en la nube de terceros, para almacenar y servir tus archivos multimedia. No se envía nada a ningún lado hasta que tú mismo lo configures en la pestaña Cloud Provider, con una cuenta y credenciales que tú proporcionas. El plugin no contacta ningún otro servicio: no envía telemetría, ni datos de uso, ni verificación de licencia al autor ni a nadie más.
Azure Blob Storage
Para qué se usa: para almacenar tus archivos multimedia de WordPress fuera de tu servidor y servirlos desde la nube.
Adónde van las solicitudes: la API REST de Azure Blob en blob.core.windows.net — específicamente el host de tu propia cuenta, https://ACCOUNT.blob.core.windows.net, donde ACCOUNT es el nombre de la cuenta de almacenamiento que ingresas en los ajustes.
Qué datos se envían: tus archivos multimedia en sí, junto con su ruta relativa, tamaño y tipo MIME. La clave de la cuenta de almacenamiento que ingresaste nunca sale de tu servidor — se usa localmente para calcular la firma que autentica cada solicitud. No se envía ningún dato personal sobre tus visitantes ni sobre los usuarios de tu sitio, y no llega absolutamente nada sobre tu sitio al autor del plugin.
Cuándo ocurren las solicitudes:
- Durante la sincronización inicial — al subir los archivos existentes de
/wp-content/uploads/a tu contenedor. - En cada subida nueva de archivo multimedia — al escribir el archivo en la nube a través del stream wrapper.
- En lectura o eliminación — cuando WordPress, o cualquier plugin que use APIs del sistema de archivos contra
/uploads/, lee o elimina un archivo. Este es también el único tráfico de front-end: un formulario o una reseña que sube un archivo pasa por el mismo stream wrapper. - Cuando el plugin lista tu contenedor — para las estadísticas de Overview (en caché por cinco minutos) y para el escaneo que precede a Disconnect from Cloud.
- Una verificación de salud de la conexión — un GET pequeño a las propiedades de tu contenedor — cuando abres una de las páginas de administración del plugin, como máximo una vez cada 5 minutos, y de nuevo tras una escritura que sigue a tres fallos consecutivos, así las subidas se reanudan solas cuando la nube vuelve. Nada se ejecuta por cron.
- Durante Disconnect from Cloud — al descargar tus archivos de vuelta al servidor.
Esta es tu propia cuenta de Azure, bajo tu propio acuerdo con Microsoft. Ni DiluxOne ni el autor del plugin son parte de ese acuerdo, y ninguno tiene acceso a tus datos. El uso que hagas del servicio está sujeto a los términos de Microsoft:
- Servicio: Azure Blob Storage (https://azure.microsoft.com/services/storage/blobs/)
- Términos del servicio: Términos de los servicios en línea de Microsoft (https://www.microsoft.com/licensing/terms/productoffering/MicrosoftAzure)
- Política de privacidad: Declaración de privacidad de Microsoft (https://www.microsoft.com/privacy/privacystatement)
Capturas









Instalación
- Sube la carpeta
diluxone-offloada/wp-content/plugins/, o instálalo desde la pantalla de Plugins de WordPress. - Activa el plugin desde la pantalla de Plugins en WordPress.
- Abre el nuevo menú DiluxOne Offload en la barra lateral del admin.
- Ve a Cloud Provider, selecciona Microsoft Azure Blob Storage, ingresa la cuenta de almacenamiento, el contenedor y la clave de acceso, y haz clic en Test Connection.
- Guarda la configuración.
- Ve a Sync & Offloading, ejecuta la sincronización inicial, y activa el offloading cuando la sincronización termine.
Requisitos
- WordPress 5.1 o superior.
- PHP 7.4 o superior.
ext-curlyext-opensslhabilitados.- Un directorio de subidas (uploads) con permisos de escritura solo para Disconnect from Cloud, cuando tus archivos multimedia se copian de vuelta. Las transferencias usan el directorio temporal de PHP para sus archivos de trabajo, nunca
uploads/. - Una cuenta de Azure Blob Storage, un contenedor cuyo nivel de acceso público sea Blob (acceso de lectura anónimo para blobs, para que los navegadores puedan cargar tus archivos multimedia directamente desde ahí), y la clave de acceso de la cuenta. Test Connection rechaza un contenedor privado y te lo indica.
Preguntas frecuentes
-
¿Este plugin modifica las URLs de mis archivos multimedia existentes en la base de datos?
-
No. El stream wrapper intercepta las llamadas al sistema de archivos de forma transparente — el contenido de tus posts, la tabla
wp_postsy la tablawp_postmetanunca se reescriben. -
¿Qué pasa si la nube no está disponible temporalmente?
-
El plugin monitorea la salud de la conexión. Mientras la nube no esté disponible, una subida nueva falla con el propio error “no se pudo mover” de WordPress y no se guarda nada en ningún lado, así que nunca terminas con un archivo que parece subido pero no lo está. Un banner en las páginas de administración del plugin explica el fallo. Los archivos que ya están en la nube se siguen sirviendo desde la URL de la cuenta de almacenamiento. El plugin vuelve a verificar la conexión como máximo cada cinco minutos y las subidas se reanudan solas cuando vuelve.
-
¿El plugin escribe algún archivo en mi servidor?
-
No por sí mismo: no tiene archivos de caché, de log ni de datos en disco; todo lo que necesita vive en la tabla de opciones de WordPress y en su propia tabla de base de datos. WordPress core escribe tus archivos multimedia a través del stream wrapper del plugin hacia la nube, pasando por un archivo temporal en el directorio temporal de PHP que se elimina justo después de la subida.
La única operación que escribe en el servidor es Sync & Offloading Disconnect from Cloud. Copia tus archivos multimedia de vuelta desde el contenedor a las rutas exactas del directorio de subidas (uploads) que WordPress tiene registradas (resueltas en tiempo de ejecución con
wp_upload_dir()), así la Biblioteca de medios vuelve a funcionar sin el plugin. Solo restaura lo que está bajo el prefijouploads/de tu propio contenedor, nunca un nombre de archivo de script o ejecutable (PHP, JavaScript, HTML, shell o ejecutables de Windows) sin importar quién lo haya puesto ahí, y solo se ejecuta cuando haces clic en él. -
¿Puedo cambiar a otra cuenta de almacenamiento o contenedor más adelante?
-
Sí. Elimina la configuración del proveedor actual desde el admin, ingresa la nueva cuenta y el nuevo contenedor, ejecuta una resincronización completa, y el plugin empieza a servir desde la nueva ubicación. No se requiere reescritura de URLs.
-
¿Funciona con WooCommerce / Elementor / editores de imágenes?
-
Sí. Como el stream wrapper opera en la capa del sistema de archivos, cualquier plugin que lea o escriba archivos bajo
/uploads/usando funciones estándar de PHP funciona sin cambios. -
¿El plugin elimina mis archivos locales automáticamente?
-
Solo si lo activas explícitamente. Después de una sincronización exitosa puedes hacer clic en Delete Local Files en la pestaña Sync & Offloading. Hasta que lo hagas, los archivos se conservan en ambos lugares. Un archivo vacío (0 bytes) al momento del escaneo de sincronización se omite: no se sube ni se rastrea, así que Delete Local Files lo deja sin tocar.
-
Si elimino un archivo de la Biblioteca de medios, ¿se elimina también de la nube?
-
Sí, mientras el offloading esté activo: el stream wrapper convierte la eliminación en una eliminación en tu contenedor, miniaturas incluidas. Si sincronizaste pero aún no activaste el offloading, WordPress solo elimina la copia local; la copia que ya está en tu contenedor no se elimina automáticamente.
-
¿Qué pasa cuando desinstalo el plugin?
-
Eliminar el plugin desde la pantalla de Plugins borra todo lo que creó en tu base de datos: sus opciones (todas con el prefijo
diluxone_offload_), sus transients y su tabla de seguimiento de archivos (diluxone_offload_files, con el prefijo de tus tablas) — en todos los sitios de una red. Desactivarlo por sí solo conserva todo eso, así que puedes desactivar y reactivar sin perder tu configuración.Tus archivos multimedia nunca se tocan al desinstalar: lo que esté en
/wp-content/uploads/se queda ahí, y lo que esté en tu contenedor se queda en tu contenedor. Si el offloading estaba activo y se habían eliminado las copias locales, descárgalas primero con Sync & Offloading Disconnect from Cloud, de lo contrario WordPress apuntará a archivos que ya no están en el servidor. -
¿Cómo activo el logging de depuración detallado?
-
Ve a DiluxOne Offload Settings Enable detailed debug logging. Los logs se escriben en el destino estándar de
error_logde PHP. Desactívalo en producción a menos que estés solucionando un problema activamente — puede afectar el rendimiento.Con ese ajuste desactivado y
WP_DEBUGdesactivado, el plugin no escribe nada en el log de errores de PHP, a ningún nivel. ConWP_DEBUGactivado escribe errores y advertencias; el ajuste agrega el resto. -
¿Es el plugin compatible con multisite?
-
Sí. Se puede activar a nivel de red; cada sitio tiene entonces su propia configuración de Cloud Provider y su propia tabla de seguimiento de archivos, así que distintos sitios pueden usar distintos contenedores o cuentas — o compartir uno: los objetos de un sitio se guardan bajo
uploads/sites/<id>/(el sitio principal bajouploads/), y cada sitio solo lista, sincroniza y restaura su propio prefijo. -
¿Cómo se almacenan mis credenciales de Azure?
-
La clave de acceso de Azure se cifra con AES-256-GCM antes de escribirse en la tabla de opciones de WordPress. La clave de cifrado se deriva de los salts de WordPress de tu sitio (
AUTH_KEY/SECURE_AUTH_KEYy los salts correspondientes enwp-config.php), así que mientras esos salts estén definidos enwp-config.php(como recomienda WordPress), un volcado de la base de datos por sí solo no basta para recuperar las credenciales — el atacante también necesita acceso al sistema de archivos dewp-config.php.Si alguna vez rotas los salts de WordPress, las credenciales cifradas existentes se vuelven ilegibles; el plugin mostrará el proveedor como “no configurado” y simplemente vuelves a introducir las credenciales en la pestaña Cloud Provider. Deliberadamente no existe una alternativa en texto plano.
Requisitos: PHP
ext-openssl(habilitado de forma predeterminada en prácticamente todos los hosts).
Reseñas
No hay reseñas para este plugin.
Colaboradores y desarrolladores
Este software es de código abierto. Las siguientes personas han contribuido a este plugin.
Colaboradores“DiluxOne Offload – Media Storage” ha sido traducido a 2 idiomas locales. Gracias a los traductores por sus contribuciones.
Traduce “DiluxOne Offload – Media Storage” a tu idioma.
¿Interesado en el desarrollo?
Revisa el código, echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
1.0.0
Primer lanzamiento público.
- Proveedor de Azure Blob Storage con tu propia cuenta y clave; los archivos multimedia se sirven desde
https://<account>.blob.core.windows.net. - Stream wrapper de PHP transparente en
/wp-content/uploads/: sin reescritura de URLs, sin migración de base de datos. - Sincronización con cancelar, reanudar y reintentar; eliminación opcional de las copias locales una vez sincronizadas; Disconnect from Cloud trae todo de vuelta.
- Salud de la conexión: cuando la nube no está disponible, una subida falla con un error claro y no se escribe nada en ningún otro lado.
- Transferencias en streaming: las descargas van directo a disco y las subidas van en bloques de 4 MiB, así los archivos grandes no necesitan mucha memoria.
- Opción “Force HTTPS for cloud storage URLs”; multisite con configuración por sitio; credenciales cifradas en reposo (AES-256-GCM, clave derivada de los salts del sitio); silencioso a menos que
WP_DEBUGo el interruptor de depuración estén activados. - Al desinstalar se eliminan las opciones, los transients y la tabla del plugin; los archivos multimedia nunca se tocan.
