Skip to content

El enfoque ingenuo para crear un ReadableStream desde un Buffer es usar el constructor ReadableStream y encolar todo el array como un único fragmento. Para un buffer grande, esto puede ser indeseable ya que este enfoque no transmite los datos en fragmentos más pequeños.

ts
const buf = Buffer.from("hello world");
const stream = new ReadableStream({
  start(controller) {
    controller.enqueue(buf);
    controller.close();
  },
});

Para transmitir los datos en fragmentos más pequeños, primero crea una instancia de Blob desde el Buffer. Luego usa el método Blob.stream() para crear un ReadableStream que transmite los datos en fragmentos de un tamaño especificado.

ts
const buf = Buffer.from("hello world");
const blob = new Blob([buf]);
const stream = blob.stream();

El tamaño del fragmento se puede establecer pasando un número al método .stream().

ts
const buf = Buffer.from("hello world");
const blob = new Blob([buf]);

// establecer tamaño de fragmento de 1024 bytes
const stream = blob.stream(1024);

Consulta Documentación > API > Datos Binarios para documentación completa sobre la manipulación de datos binarios con Bun.

Bun por www.bunjs.com.cn editar