从服务器发送大文件(如“音频”文件、流的静态文件)有什么更好的方法? 我正在使用 node.js 和 express.js 实现音频播放器 API,但我正在寻找更好的性能。
我可以像这样使用 express 发送音频:
app.use('/uploads', express.static(path.join(__dirname, '../', 'uploads')));
或者使用 fs 流,例如:
export async function streamAudio(req: Request, res: Response, next: NextFunction) {
try {
const filePath: string = req.params.fileName;
const actualPath = path.join(__dirname, "/../../../", filePath);
console.log(actualPath);
const state = fs.statSync(actualPath);
res.writeHead(200, {
"Content-Type": "audio/mpeg",
"Content-Length": state.size,
});
const readStream = fs.createReadStream(actualPath);
readStream.pipe(res);
} catch (err) {
next(err);
}
}
我还有一个问题,如何使音频无法下载?所以我可以制作一个下载端点选项来跟踪下载。