При получении изображений профиля пользователя я использую клиент Microsoft Graph getStream()
в надежде передать данные изображения в потоковом режиме.
Регистрация возвращаемого значения утверждает, что возвращаемый объект является ReadableStream
, но это не какой-либо читаемый поток, который я узнаю - он, по-видимому, не имеет ни методов канала, ни getReader
, и не принимается ни в чем, что я ожидал бы принимать веб-потоки, например Readable.fromWeb
. Как мне превратить его в обычный Node Readable?
Для меня тоже загадка, какой "поток" возвращается. В любом случае, я делаю это вот так (объединяю контент в памяти). Если вам нужно выполнить конвейерную передачу, вы также можете сделать это, не читая весь файл в память (передайте выходной поток и запишите в него в цикле).
const getFileContent = async (path: string) => Promise<Buffer> {
const stream = await graph.api(path).getStream();
const chunks: any[] = [];
for await (const chunk of stream) {
chunks.push(Buffer.from(chunk));
}
return Buffer.concat(chunks);
}
Приветствую, это сработает. Рад, что я не одинок в этом недоумении!