Skip to content

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

ts
const arr = new Uint8Array(64);
const stream = new ReadableStream({
  start(controller) {
    controller.enqueue(arr);
    controller.close();
  },
});

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

ts
const arr = new Uint8Array(64);
const blob = new Blob([arr]);
const stream = blob.stream();

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

ts
const arr = new Uint8Array(64);
const blob = new Blob([arr]);

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

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

Bun by www.bunjs.com.cn 編集