gpt4 book ai didi

deno - 如何使用 Deno fetch API 将文件发布到服务器/或将文件转换为 RedableStream?

转载 作者:行者123 更新时间:2023-12-04 15:25:52 34 4
gpt4 key购买 nike

如何将文件转换为可读流?我正在尝试使用 deno 的 fetch api 来执行此操作,这需要一个可读流作为正文以将某些内容放在服务器上。我不知道如何将文件转换为 ReadableStream ?

最佳答案

目前还没有内置的方法将 Reader 转换为 ReadableStream

您可以使用以下代码转换它:

const file = await Deno.open("./some-file.txt", { read: true });

const stream = new ReadableStream({
async pull(controller) {
try {
const b = new Uint8Array(1024 * 32);
const result = await file.read(b);
if (result === null) {
controller.close();
return file.close();
}

controller.enqueue(b.subarray(0, result));
} catch (e) {
controller.error(e);
controller.close();
file.close();
}
},
cancel() {
// When reader.cancel() is called
file.close();
},
});

// ReadableStream implements asyncIterator
for await (const chunk of stream) {
console.log(chunk);
}

请记住,Deno (1.0.5) fetch 尚不支持将 ReadableStream 作为请求主体。

因此目前要发布文件,您需要缓冲内容。

const body = await Deno.readAll(file);
await fetch('http://example.com', { method: 'POST', body });

关于deno - 如何使用 Deno fetch API 将文件发布到服务器/或将文件转换为 RedableStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62258892/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com