Wenn ich die Box REST API abfragen und einen lesbaren Stream abrufen, was ist der beste Weg, damit umzugehen? Wie sendest du es an den Browser? (DISCLAIMER: Ich bin neu in Streams und Puffer, so dass einige dieser Code ist ziemlich theoretisch)Nodejs: So senden Sie einen lesbaren Stream an den Browser
Können Sie den ReadStream in der Antwort übergeben und lassen Sie den Browser damit umgehen? Oder müssen Sie die Chunks in einen Puffer streamen und dann den Puffer senden?
export function getFileStream(req, res) {
const fileId = req.params.fileId;
console.log('fileId', fileId);
req.sdk.files.getReadStream(fileId, null, (err, stream) => {
if (err) {
console.log('error', err);
return res.status(500).send(err);
}
res.type('application/octet-stream');
console.log('stream', stream);
return res.status(200).send(stream);
});
}
Wird ^^ Arbeit, oder tun Sie etwas tun müssen:
export function downloadFile(req, res) {
const fileId = req.params.fileId;
console.log('fileId', fileId);
req.sdk.files.getReadStream(fileId, null, (err, stream) => {
if (err) {
console.log('error', err);
return res.status(500).send(err);
}
const buffers = [];
const document = new Buffer();
console.log('stream', stream);
stream.on('data', (chunk) => {
buffers.push(buffer);
})
.on('end', function(){
const finalBuffer = Buffer.concat(buffers);
return res.status(200).send(finalBuffer);
});
});
}