TransformStream

更新时间:2024-08-14 19:50:29

TransformStream 对象由一对流组成:一个可读流(称为可读端)和一个可写流(称为可写端)。写入可写端的数据将作为新数据可从可读端读取。 它基于 Web APIs 标准 TransformStream 接口设计,您可以在 Edge Cloud Apps 函数中使用 TransformStream 对象来处理流式数据,例如转换数据格式、压缩数据、加密数据等。

构造函数

new TransformStream(transformer?: Transformer, writableStrategy?: WritableStrategy);

参数:

参数名称 类型 必填 说明
transformer Transformer 转换器对象,用于自定义数据转换逻辑。 目前暂不支持,传值不生效,自动忽略该参数。
writableStrategy WritableStrategy 可写端策略配置。

WritableStrategy

属性名 类型 必填 说明
highWaterMark number 可写端缓冲区大小,以字节为单位,默认值为 32KB, 最大值为 256KB, 超过最大值则会自动调整为 256KB。

属性

readable

  • 类型: ReadableStream (只读)
  • 描述: 可读端,详情参见 ReadableStream

writable

  • 类型: WritableStream (只读)
  • 描述: 可写端,详情参见 WritableStream

示例代码

async function handleEvent(event) {
  // 生成可读端与可写端
  const { readable, writable } = new TransformStream();
  // 获取远程资源 
  const response = await fetch('https://www.tencentcloud.com/');
  // 流式响应客户端 
  response.body.pipeTo(writable);

  return new Response(readable, response);
}

addEventListener('fetch', (event) => {
  event.respondWith(handleEvent(event));
});

IdentityTransformStream

IdentityTransformStream 类实现了与当前 TransformStream 类相同的行为。 这种类型的流将写入其可写端的所有字节数据块(以 TypedArrays 的形式)转发到其可读端,不做任何更改。

IdentityTransformStream 可读端支持自带缓冲区 (BYOB) 读取。

构造函数

new IdentityTransformStream();

返回值: 返回一个新的 identity transform stream。

属性

readable

  • 类型: ReadableStream
  • 描述: 一个 ReadableStream 实例。

writable

  • 类型: WritableStream
  • 描述: 一个 WritableStream 实例。

FixedLengthStream

FixedLengthStreamIdentityTransformStream 的一种特化,它限制了流将传递的总字节数。 它主要用于在使用 FixedLengthStream 生成 ResponseRequest 时,流的固定长度将用作 Content-Length 标头值,而不是在使用任何其他类型的流时使用分块编码。 如果通过流写入的字节过多或过少,则会发生错误。

构造函数

new FixedLengthStream(length: number | bigint);

参数:

  • length: 一个数字或 bigint,表示流将传递的总字节数。 最大值为 2^53 - 1。

返回值: 返回一个新的 identity transform stream。

属性

readable

  • 类型: ReadableStream
  • 描述: 一个 ReadableStream 实例。

writable

  • 类型: WritableStream
  • 描述: 一个 WritableStream 实例。

相关参考

本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!