Skip to content

Buffer から ReadableStream を作成する単純なアプローチは、ReadableStream コンストラクタを使用して、バッファ全体を単一のチャンクとしてエンキューすることです。大きなバッファの場合、この方法はデータを小さなチャンクに「ストリーミング」しないため、望ましくない場合があります。

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

データを小さなチャンクにストリーミングするには、まず Buffer から Blob インスタンスを作成します。次に、Blob.stream() メソッドを使用して、指定されたサイズのチャンクでデータをストリーミングする ReadableStream を作成します。

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

.stream() メソッドに数値を渡すことで、チャンクサイズを設定できます。

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

// 1024 バイトのチャンクサイズを設定
const stream = blob.stream(1024);

Bun でバイナリデータを操作する方法に関する完全なドキュメントについては、ドキュメント > API > バイナリデータ を参照してください。

Bun by www.bunjs.com.cn 編集