Guía rápida sobre los Blobs de JavaScript

Un Blob (Binary Large Object) representa datos inmutables de tipo raw (crudos) que pueden leerse como texto o binario. Los Blobs pueden representar datos de diferentes tipos, como texto, imágenes, sonido, o incluso otros Blobs.

Características Principales

  • Inmutabilidad: Una vez que un Blob es creado, sus datos no pueden ser modificados.
  • Eficiencia: Los Blobs son eficientes en términos de memoria y rendimiento, especialmente para la manipulación de grandes cantidades de datos binarios.
  • Lectura de Datos: Los datos de un Blob pueden ser leídos como texto (usando FileReader.readAsText), binario (usando FileReader.readAsArrayBuffer), o incluso convertidos a una URL temporal (usando URL.createObjectURL).

Creación de un Blob

Para crear un Blob, usas el constructor Blob(). Este constructor acepta dos argumentos: un array de datos y un objeto de opciones.

const myBlob = new Blob([data], {type: 'text/plain'});

En este ejemplo, data puede ser un ArrayBuffer, un ArrayBufferView, un Blob, un DOMString, o incluso una combinación de ellos.

Ejemplos Prácticos

Vamos a ver algunos ejemplos ilustrativos para entender mejor cómo usar los Blobs.

1. Crear un Blob con Texto

const text = 'Hola, mundo!';
const textBlob = new Blob([text], { type: 'text/plain' });

2. Descargar un Blob como Archivo

Supongamos que quieres permitir a los usuarios descargar un archivo de texto generado en el navegador:

function downloadBlob(blob, filename) {
  const url = URL.createObjectURL(blob);
  const a = document.createElement('a');
  a.href = url;
  a.download = filename;
  a.click();
  URL.revokeObjectURL(url);
}

const dataBlob = new Blob(['Contenido del archivo'], { type: 'text/plain' });
downloadBlob(dataBlob, 'miArchivo.txt');

3. Leer el Contenido de un Blob

Si tienes un Blob y quieres leer su contenido como texto:

const reader = new FileReader();
reader.onload = function(event) {
  console.log(event.target.result);
};
reader.readAsText(textBlob);

4. Crear un Blob a partir de una Imagen

Supongamos que quieres crear un Blob a partir de datos de imagen:

fetch('path/to/imagen.jpg')
  .then(response => response.blob())
  .then(blob => {
    // Haz algo con el blob de la imagen
    // Por ejemplo, mostrar la imagen en la UI
    const imgURL = URL.createObjectURL(blob);
    document.querySelector('img').src = imgURL;
  });

Uso en Aplicaciones Web

Los Blobs son extremadamente útiles en aplicaciones web para:

  • Manejar archivos subidos por usuarios (por ejemplo, imágenes, videos, documentos).
  • Generar y permitir la descarga de archivos (por ejemplo, CSV, PDFs generados).
  • Trabajar con datos multimedia (por ejemplo, procesamiento de audio y video).
👉  ¿Cómo hacer pruebas unitarias en .NET Core?

Para terminar

Los Blobs son poderosos y versátiles, ideales para manejar datos binarios y de texto en aplicaciones web. Su capacidad para manejar grandes volúmenes de datos de manera eficiente los hace indispensables en el manejo de archivos y datos multimedia en el frontend.

👇Tu comentario