【发布时间】:2022-05-09 19:56:30
【问题描述】:
我正在使用块进行上传功能,在本地它工作正常,但是当我进入生产时,由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,但实际上并没有给出错误
appendFile函数
【问题讨论】: