desarrollo web

Sincronizar imagenes en WordPress entre producción y desarrollo

Sincronizar imagenes en WordPress entre producción y desarrollo

Si trabajas como desarrollador seguramente estés de acuerdo en que uno de los puntos que más complicaciones en cuanto a consumo de tiempo se refieren es sincronizar imagenes en WordPress de desarrollo local con el de producción sobretodo en lo que a imágenes se refiere.

Esto no es demasiado problema cuando empiezas con un sitio nuevo en el que apenas hay contenido pero para sitios que ya llevan un tiempo funcionando y se han generado un importante número de entradas y paginas, utilizar FTP puede llevar horas. Es cierto que puedes usar otras alternativas mucho mas eficientes como rsync o descargar directamente desde el panel de adminsitración del servidor, pero en ambos casos sigue siendo un proceso demasiado manual para mi gusto y desde luego totalmente incompatible si te planteas una integración continua.

Una recomendación que os hago es que aunque os centréis en especializaros en una determinada tecnología, WordPress en el caso que nos trae hoy aquí, siempre es bueno echar un ojo a la «competencia» porque en bastantes ocasiones os sorprederá la forma en la que se resuelven ciertas situaciones, y lo mejor de todo es que podemos aplicar esa forma de trabajar a nuestras propias necesidades. Para solucionar este problema que os comento, nos vamos a fijar en como Drupal gestiona esto, para mi gusto una solución bastante simple y funcional.

 

Drupal y su Stage File Proxy

Stage File Proxy es un modulo disponible en Drupal que te permite mantener tu entorno de desarrollo sincronizado con el de producción. Antes de nada decir que esta comunicación no es bi-direccional sino que va desde el sitio de producción al de desarrollo y ahí se acaba todo. Por lo que no te va a subir ninguno de los cambios que hagas en local eso lo tienes que gestionar por otras vías que lleven un proceso para garantizar que todo está testeado y funcionando como debe.

¿Cómo funciona entonces?

Es bastante sencillo, sin entrar en demasiado detalle tenéis dos opciones descarar las imágenes o enlazar directamente (hotlink). Si decides descargar las imágenes lo que hace es usar las rutas de las imágenes para una vez visites esa pagina en concreto descargar la imagen del servidor y guardarla en local. Esto lo hace una vez y si la imagen cambia en producción tienes que asegurarte de borrar las locales para que vuelva a hacer el mismo proceso. Por otro lado el hotlinking enlaza directamente a la imagen subida y no descarga nada en local.

Como veis es super efectivo y ahorra bastante tiempo, una vez que sincronizas tu repositorio, activas el plugin y a correr. En cuestión de minutos estás con un sitio en local funcionando como una copia exacta del que hay en producción.

Alternativas a Stage File Proxy en WordPress

En WordPress por suerte también podemos tener esta funcionalidad aunque parece ser una opción no tan usada y comentada por la comunidad. Para hacerlo funcionar tenemos algunas alternativas, un par de plugins y una modificación en nuestro archivo htaccess.

El primer plugin es Uploads by Proxy que plantea un problema interesante, no ha sido actualizado hace mucho pero que mucho, básicamente no ha sido probado con las tres ultimas actualizaciones mayores de WordPress. Por lo que personalmente no escogería esta opción pero que sepáis que está ahi, puede que esté obsoleto pero funcionando correctamente. Lo incluyo en este listado porque las reviews son bastante buenas.

Para la segunda opción nos tenemos que salir del repositorio oficial de WordPress donde en github encontraremos Stage File Proxy este plugin nos va a ahorrar la molestia de descargar el directorio de contenido sin sacrificar las imágenes que acompañan al contenido. El punto bueno es que la última actualización es de hace «tan solo» 10 meses.

La ultima opción es sin duda la más sencilla de añadir a nuestro sitio, utilizar el htaccess. Pero con esta opción tienes que tener en cuenta una cosa, las imágenes no se descargan sino que hacemos hotlinking, con lo que puede ser un método no valido dependiendo de que casos, por ejemplo si tu servidor está bloqueando este método.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f [NC]
    RewriteRule ^(.*\.(js|css|png|jpe?g|gif|ico)) https://ejemplo.com/$1 [NC,P,L]
</IfModule>

[/vc_column_text][vc_column_text]Tan solo tienes que sustituir ejemplo.com por tu sitio web y recuerda que cuando pases a producción no debes incluir eeste htaccess modificado ya que sería totalmente inutil y además estarias redireccionando sobre el propio servidor.

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]Ya tienes la información sobre los diferentes métodos disponibles, ahora te toca a ti escoger cuál te parece más conveniente. Recuerda que dependiendo el proyecto puede ser interesante usar uno u otro.

¿Conocias esta forma de mantener sincronizado tu entorno de desarrollo? ¿Que otras formas utilizas?

Rate this post
Facebook
LinkedIn
WhatsApp
Email

Publicar comentario

Tu email no será publicado. Campos obligatorios marcados con *