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.
Índice de contenidos
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);
/*-----------*/
- 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
- 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.