首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >appendFile节点在生产中不能正常工作

appendFile节点在生产中不能正常工作
EN

Stack Overflow用户
提问于 2022-02-14 15:02:11
回答 1查看 67关注 0票数 1

我正在使用块进行上传功能,它在本地正常工作,但是当我开始生产时,由appendFile完全分组的文件还没有完成。

代码的工作方式如下:在前端,我将文件分成1mb片段,用一个函数命名它为唯一的名称,将它发送到后端,并在文件上使用该名称执行appendFile。

代码语言:javascript
复制
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
      }
    });
  • 我下载了这个文件,并比较了工作的本地env和生产的env之间的大小,而且生产的文件似乎总是不能运行最后一个块的appendFile,但是它实际上并没有在appendFile函数中产生错误。

我用文本编辑器打开文件,以查看书写的大小,并计算出大约丢失了1 1mb的1段。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-09 11:56:30

我不明白发生了什么,在我们的生产环境中,我们使用kubernetes,它平衡了请求,因为我们发送的缓冲区最大为5mb,当我们安装文件时,碎片位于不同的荚中。

我们改变了请求作为流传输的方式(内容类型:‘application/octet’),一切都进行得很顺利。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71113906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档