NodeJS - 将〜36MB文件上传到VirusTotal失败

时间:2015-05-17 02:28:22

标签: javascript node.js

我尝试使用NodeJS中的公共API使用请求将36MB zip文件上传到Virus Total。我在尝试上传时遇到了这个问题,并且无法弄清楚接下来要做什么来修复它。他们的API没有说明任何文件大小限制,他们的前端上传器指定了128MB的上传限制。

<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>413 Request Entity Too Large</title>
</head>
<body text=#000000 bgcolor=#ffffff>
<h1>Error: Request Entity Too Large</h1>
<h2>Your client issued a request that was too large.
</h2>
<h2></h2>
</body></html>

代码很简单直接,但我真的不知道如何解决它。任何帮助表示赞赏。

var request = require('request');
var fs = require('fs');

var formData = {
  file: fs.createReadStream('./path/to/file.zip'),
  apikey: 'public-vt-apikey'
};

var options = {
  url: 'https://www.virustotal.com/vtapi/v2/file/scan',
  formData: formData
};

request.post(options, function(err, res, body) {
  console.log(body);
});

2 个答案:

答案 0 :(得分:1)

VirusTotal file/scan API调用限制为32MB。如果您有一个很好的用例来扫描大文件,您可以要求VirusTotal访问另一个API调用,以获取更大的文件,这些文件最多可以包含200MB文件。

答案 1 :(得分:0)

Express增加了它可以处理的http请求正文大小的限制。你需要覆盖它。 var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));