更新时间: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
类实现了与当前 TransformStream
类相同的行为。 这种类型的流将写入其可写端的所有字节数据块(以 TypedArrays 的形式)转发到其可读端,不做任何更改。
IdentityTransformStream
可读端支持自带缓冲区 (BYOB) 读取。
new IdentityTransformStream();
返回值: 返回一个新的 identity transform stream。
readable
ReadableStream
ReadableStream
实例。writable
WritableStream
WritableStream
实例。FixedLengthStream
是 IdentityTransformStream
的一种特化,它限制了流将传递的总字节数。 它主要用于在使用 FixedLengthStream
生成 Response
或 Request
时,流的固定长度将用作 Content-Length
标头值,而不是在使用任何其他类型的流时使用分块编码。 如果通过流写入的字节过多或过少,则会发生错误。
new FixedLengthStream(length: number | bigint);
参数:
length
: 一个数字或 bigint,表示流将传递的总字节数。 最大值为 2^53 - 1。返回值: 返回一个新的 identity transform stream。
readable
ReadableStream
ReadableStream
实例。writable
WritableStream
WritableStream
实例。