我正在使用块进行上传功能,它在本地正常工作,但是当我开始生产时,由appendFile完全分组的文件还没有完成。
代码的工作方式如下:在前端,我将文件分成1mb片段,用一个函数命名它为唯一的名称,将它发送到后端,并在文件上使用该名称执行appendFile。
request.on("data", (part) => {
chunk.push(part);
}).on("end", async () => {
const firstChunk = chunkId === 0;
const lastChunk = (chunkId) === (chunksQuantity) -1;
const completedChunk = Buffer.concat(chunk);
if (firstChunk && existsSync(`${__dirname}/../../uploads/videos/${fileName}`)) {
unlinkSync(`${__dirname}/../../uploads/videos/${fileName}`);
}
appendFile(`${__dirname}/../../uploads/videos/${fileName}`, completedChunk, async (err)=> {
if(err) throw err;
if(lastChunk) {
//I upload the video to s3 and follow our internal flow
}
});appendFile函数中产生错误。发布于 2022-05-09 11:56:30
我不明白发生了什么,在我们的生产环境中,我们使用kubernetes,它平衡了请求,因为我们发送的缓冲区最大为5mb,当我们安装文件时,碎片位于不同的荚中。
我们改变了请求作为流传输的方式(内容类型:‘application/octet’),一切都进行得很顺利。
https://stackoverflow.com/questions/71113906
复制相似问题