Skip to content

L'approche naïque pour créer un ReadableStream à partir d'un Buffer est d'utiliser le constructeur ReadableStream et d'enfiler l'intégralité du tableau comme un seul morceau. Pour un grand buffer, cela peut être indésirable car cette approche ne "stream" pas les données en plus petits morceaux.

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

Pour streamer les données en plus petits morceaux, créez d'abord une instance Blob à partir du Buffer. Ensuite, utilisez la méthode Blob.stream() pour créer un ReadableStream qui stream les données par morceaux d'une taille spécifiée.

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

La taille des morceaux peut être définie en passant un nombre à la méthode .stream().

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

// définir une taille de morceau de 1024 octets
const stream = blob.stream(1024);

Consultez Docs > API > Données Binaires pour une documentation complète sur la manipulation de données binaires avec Bun.

Bun édité par www.bunjs.com.cn