Un objeto blob es simplemente un grupo de bytes que contiene los datos almacenados en un archivo. Puede parecer que un blob es una referencia al archivo real, pero en realidad no lo es. Un blob tiene su tamaño y MIME como el de un archivo simple. Los datos del blob se almacenan en la memoria o el sistema de archivos de un usuario según las características del navegador y el tamaño del blob. Un blob simple se puede usar en cualquier lugar que deseemos, como archivos.
El contenido del blob se puede leer fácilmente como ArrayBuffer , lo que hace que los blobs sean muy convenientes para almacenar datos binarios.
Sintaxis para crear un Blob:
var abc = new Blob(["Blob Content"], {type: Blob Property containing MIME property})
Además de insertar datos directamente en Blob, también podemos leer datos de este Blob usando la clase FileReader:
var abc = new Blob(["GeeksForGeeks"], {type : "text/plain"}); var def = new FileReader(); def.addEventListener("loadend", function(e) { document.getElementById("para").innerHTML = e.srcElement.result; }); def.readAsText(abc);
En el archivo HTML, simplemente creamos un elemento <p> simple con id=”para”:
<p id="para"></p>
Y obtendrá el siguiente resultado:
GeeksForGeeks
URL de blob: al igual que tenemos URL de archivo que se refieren a algunos archivos reales en el sistema de archivos local, también tenemos URL de blob que se refieren a Blob. Las URL de blob son bastante similares a cualquier URL normal y, por lo tanto, se pueden usar en casi cualquier lugar donde podamos usar las URL generales. Un Blob se puede usar fácilmente como una URL para <a>, <img> u otras etiquetas, para mostrar su contenido. La URL del blob que apunta a un blob se puede obtener mediante el objeto createObjectURL:
<!DOCTYPE html> <html> <head> <title> JavaScript Blob </title> </head> <body> <a download="gfg.txt" href='#' id="link">Download</a> <script> let abc = new Blob(["Geeks For Geeks"], { type: 'text/plain' }); link.href = URL.createObjectURL(abc); </script> </body> </html>
Salida:
Obtendrá un Blob descargado generado dinámicamente con Geeks For Geeks como su contenido:
Blob a ArrayBuffer: el constructor Blob se puede usar para crear blobs a partir de cualquier cosa, incluido cualquier tipo de BufferSource. Para el procesamiento de bajo nivel, podemos usar el ArrayBuffer de nivel más bajo del blob usando FileReader:
let def = new FileReader(); def.readAsArrayBuffer(abc); def.onload = function(event) { let res = def.result; };
Puntos positivos por usar Blobs:
- Los blobs son una buena opción para agregar grandes archivos de datos binarios a una base de datos y se pueden consultar fácilmente.
- Es fácil establecer derechos de acceso mediante la gestión de derechos mientras se utilizan blobs.
- Las copias de seguridad de la base de datos de Blobs contienen todos los datos.
Puntos negativos por usar Blobs:
- No todas las bases de datos permiten el uso de Blobs.
- Los blobs son ineficaces debido a la cantidad de espacio en disco necesario y al tiempo de acceso.
- La creación de copias de seguridad requiere mucho tiempo debido al tamaño de archivo de Blobs.