gpt4 book ai didi

node.js - 使用 multer 上传大文件 (>2GB)

转载 作者:行者123 更新时间:2023-12-04 17:23:48 24 4
gpt4 key购买 nike

我正在尝试将一个大文件 (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 Controller 中,格式为 saveLogFile = async (req,res) => { ... } 我想获取 req.文件multer 包应该给我上传的文件和 req.file。所以当我尝试上传小文件(<2GB)时,它成功了。但是当我尝试上传超过 2GB 的文件时,出现以下错误:

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 Controller 中访问上传的文件。

最佳答案

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

In case you omit the options object, the files will be kept in memoryand never written to disk.

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

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

关于node.js - 使用 multer 上传大文件 (>2GB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64632109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com