Cómo ahorrar dinero y espacio de hosting en wordpress gracias a Bunny Storage

En la mayoría de los casos, espacio y hosting y potencia van de la mano, sitios más grandes suelen tener más visitas, y se contrata un hosting más potente que a su vez tiene más tamaño. Pero, ¿Qué pasa si la web, no necesita muchos recursos pero sin embargo tenemos que almacenar muchas imágenes o v´ídeos? Este podría ser el caso de webs de diarios digitales o de fotografías.

Para ello, podemos hacer uso de Bunny Storage + Bunny CDN, podremos almacenar archivos al ridículo precio de $0.01/GB

Voy a explicar 2 formas distintas de conectar Bunny con WordPress, pero tanto para una como para la otra hay unos pasos comunes.

Crear espacio en Bunny Storage

Procedemos a crear nuestro Storage Zone, le tenemos que definir el nombre (puede ser el nombre de la web) y tenemos que elegir entre:

  • Standard: El nivel de almacenamiento estándar está optimizado para el almacenamiento y la entrega de archivos globales de bajo coste y alto rendimiento. Ofrece una latencia moderada en todo el mundo y es ideal para casos de uso como el almacenamiento de objetos, la entrega de vídeos, el alojamiento de archivos y otros.
  • Edge (SSD): El nivel de almacenamiento Edge está optimizado para obtener un rendimiento global ultra alto gracias al almacenamiento estrictamente SSD. Proporciona latencias de milisegundos en todo el mundo y es ideal para casos de uso como Perma-Cache, aceleración de sitios web, entrega de contenido de alto rendimiento, archivos pequeños y contenido donde el rendimiento es primordial.

Yo hasta ahora estaba utilizando el Standard ya que el Edge es bastante reciete y el rendimiento igualmente es muy bueno.

El siguiente paso es decidir donde van a estar los datos, como primario, yo siempre pongo Alemania, y dependiendo de donde tengamos las visitas, podemos seleccionar más ubicaciones o menos, mi recomendación es seleccionar mínimo una zona más, y así tener los datos replicados por seguridad. Por ejemplo podemos tener Alemania + EEUU o Alemania + Suecia…

Seleccionar zonas adicionales tiene coste adicional pero sigue siendo barato.

Crear CDN pull zone

Ahora vamos a relacionar el almacenamiento con el CDN, vamos a Pull Zones > Add Pull Zone y nuevamente establecemos el nombre, que esta vez sí es visible para la URL final. A continuación seleccionamos «Storage Zone» y seleccionamos la zona que hemos creado anteriormente.

Nuevamente toca seleccionar las zonas del CDN, mi recomendación es seleccionar mínimo Europa y América del Norte.

Y con esto, ya tendremos toda la parte de Bunny Configurada. Ahora vamos a ver cómo lo conectamos con WordPress.

CONECTAR WORDPRESS y BUNNY STORAGE Mediante FTP

Reconozco que tiene sus inconvenientes, y es un método que me encantaría que si alguien lo mejora lo deje en los comentarios. La ventaja es que es muy fácil de hacer y no tiene los sobrecostes. La idea es muy simple, descargar los archivos de /wp-content/uploads/ y subirlos al FTP que nos proporciona Bunny Storage.

El siguiente código que deberemos de introducir en el archivo functions.php de nuestra plantilla, reemplazará las URLs de nuestras imágenes y archivos, por las del CDN. Pero tendremos 2 cosas en cuenta.

/*------BUNNY CDN-----*/

function to_cdn($src) {

    $explodeSrc = explode("/",$src);
    $fecha = DateTime::createFromFormat('Y-m-d', $explodeSrc[5]."-".$explodeSrc[6]."-31");
    $fechaCdnFrom = DateTime::createFromFormat('Y-m-d', "2022-08-31");

    if($fecha <= $fechaCdnFrom){
        return str_replace("https://www.kebes.es/wp-content/uploads/20","https://kebes.b-cdn.net/20",$src);
    }else{
        return $src;
    }

}

function test_get_attachment_image_src($image, $attachment_id, $size, $icon) {
    if(!is_admin()) {
        if(!$image) {
            return false;
        }

        if(is_array($image)) {
            $src = to_cdn($image[0]); // To CDN
            $width = $image[1];
            $height = $image[2];

            return [$src, $width, $height, true];

        } else {
            return false;
        }
    }

  return $image;

}
add_filter('wp_get_attachment_image_src', 'test_get_attachment_image_src', 10, 4);


function test_calculate_image_srcset($sources, $size_array, $image_src, $image_meta, $attachment_id) {
    if(!is_admin()) {
        $images = [];

        foreach($sources as $source) {
            $src = to_cdn($source['url']); // To CDN
            $images[] = [
                'url' => $src,
                'descriptor' => $source['descriptor'],
                'value' => $source['value']
            ];
        }

        return $images;
    }

  return $sources;
}
add_filter('wp_calculate_image_srcset', 'test_calculate_image_srcset', 10, 5);

/*-----------*/
  1. Vamos a reemplazar únicamente las URL de los archivos que tenemos subidos a Bunny Storage, y como el proceso es manual, recomiendo especificar una fecha por la cual pasará a mostrar las del CDN a las de nuestro hosting, en el código he puesto 2022-08-31
  2. En el código tenemos que ajustar la función str_replace() para poner bien la URL de nuestra web y la del CDN. Que no se os olvide!

Lo dicho, este método tiene una parte mala, y es que no vamos a tener siempre los archivos 100% sincronizados con el Bunny Storage, en el caso de algunos clientes, tengo planificado una vez al año, antes de que se llene el hosting, descargar todos los archivos y subirlos a Bunny CDN.

Eliminar los archivos del hosting

Obviamente, una vez está todo funcionando, y si lo que queremos es ahorrar espacio, eliminaremos los archivos de los meses que hayamos subido a Bunny Storage.

CONECTAR WORDPRESS y BUNNY mediante plugin

El plugin se llama Leopard – WordPress Offload Media y tiene un coste de $59, este plugin se encargará de todo, subir automáticamente los archivos a Bunny Storage, eliminarlos de wordpress, y muchas más opciones. No voy a ponerme a detallar como configurarlo pero es bastante sencillo, podéis ver su documentación aquí.

Para mi gusto, crea demasiado contenido en base de datos y hace demasiadas modificaciones a la base de datos y prefiero la opción manual y mediante FTP.

Podemos hacerlo por tí

Podemos ayudarte a ahorrar en hosting, ponte en contacto con nosotros y haremos que pagues menos por tu hosting.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Kebes
Scroll al inicio