我使用 express js 作为后端。
每个用户可以上传 3/5 个文件。管理员可以从仪表板下载文件作为 zip 文件。
我正在使用ADM-ZIP
压缩文件并下载 zip。
const zip = new AdmZip();
const uploadDir = await fsPromises.readdir("./static/uploads/applications/"+user.id);
for(var i = 0; i < uploadDir.length;i++){
zip.addLocalFile('./static/uploads/applications/'+user.id+'/'+uploadDir[i]);
}
const downloadName = `${user.name}.zip`;
const data = await zip.toBuffer();
res.set('Content-Type','application/octet-stream');
res.set('Content-Disposition',`attachment; filename=${downloadName}`);
res.set('Content-Length',data.length);
return res.send(data);
代码工作正常。但我注意到按下下载时 CPU 使用率很高。
这在快递中发生是正常的吗?这种方法适用于压缩多个文件并下载它们吗?
我是新来表达的,所以我有点担心采用这种方法会遇到问题。