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 > バイナリデータ を参照してください。