从服务器发送大文件(如“音频”文件、流的静态文件)有什么更好的方法? 我正在使用 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);
}
}
我还有一个问题,如何使音频无法下载?所以我可以制作一个下载端点选项来跟踪下载。