чанки из http stream, и передаю их в parse(). Но мне нужно аккумулировать хотя бы 420 кб, которые потом я бы передал в parse(). Как это можно реализовать?
const streamResponse = async (url: string) => {
return new Promise((resolve) => {
// fetch data from url chunk by chunk through a stream
http.get(url, (httpStream: http.IncomingMessage) => {
httpStream
// pipe to a transform stream to modify the data
.pipe(parse())
// pipe to a pass-through stream to upload the data to s3
.pipe(upload(resolve, url));
});
});
};
function parse() {
// Transform is a stream that reads input, transforms it, and writes the output
const transform = new stream.Transform({
transform(chunk, _, callback) {
// Modify the chunk of data here (e.g., manipulate, transform, or filter)
// Example: Convert chunk to uppercase
const modifiedChunk = chunk.toString().toUpperCase();
console.log('chunk size: ', getBufferKbSize(chunk));
// Push the modified chunk to the pass-through stream
this.push(modifiedChunk);
// log existing chunks
callback();
},
});
return transform;
}
Типа этого? https://github.com/lewisdiamond/stromjs#batchbatchsize-maxbatchage-options
Обсуждают сегодня