【问题标题】:Upload large file (>2GB) with multer使用 multer 上传大文件 (>2GB)
【发布时间】:2020-11-01 21:31:59
【问题描述】:

我正在尝试将一个大文件 (7GB) 上传到我的服务器。为此,我使用multer

const express = require('express');

const multer = require('multer');

const {
    saveLogFile,
} = require('../controller/log');

const router = express.Router();
const upload = multer();

router.post('/', upload.single('file'), saveLogFile);

在我的saveLogFile 控制器中,格式为saveLogFile = async (req,res) => { ... },我想得到req.filemulter 包应该给我上传的文件req.file。因此,当我尝试上传小文件(

buffer.js:364
    throw new ERR_INVALID_OPT_VALUE.RangeError('size', size);
    ^

RangeError [ERR_INVALID_OPT_VALUE]: The value "7229116782" is invalid for option "size"

我怎样才能绕过它?实际上,我只需要访问我的 saveLogFile 控制器中的上传文件即可。

【问题讨论】:

    标签: node.js multer


    【解决方案1】:

    这样做的原因可能是当您使用 multer 时节点将耗尽内存而不传递任何选项。来自docs

    如果您省略选项对象,文件将保存在内存中 并且从未写入磁盘。

    尝试使用deststorage 选项以使用临时文件进行上传:

    const upload = multer({ dest: './some-upload-folder' });
    router.post('/', upload.single('file'), saveLogFile);
    

    【讨论】:

      猜你喜欢
      • 2011-06-04
      • 2016-02-17
      • 2018-09-21
      • 2019-07-31
      • 2017-11-05
      • 1970-01-01
      • 2020-12-31
      • 1970-01-01
      相关资源
      最近更新 更多