2015-05-17 15 views
6

Ich versuche, eine 36MB Zip-Datei auf Virus Total mit ihrer öffentlichen API in NodeJS mit Anfrage hochladen. Ich stoße gerade auf dieses Problem beim Hochladen und kann nicht herausfinden, was ich als nächstes tun soll, um es zu beheben. Ihre API gibt keine Dateigrößenbeschränkung an, und ihr Front-Uploader gibt ein Upload-Limit von 128 MB an.NodeJS - Upload ~ 36MB Datei zu VirusTotal fehlgeschlagen

<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> 

Code ist geradlinig und einfach, aber wirklich nicht wissen, was zu tun ist, um es zu beheben. Jede Hilfe wird geschätzt.

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); 
}); 
+0

[Dies] (http://stackoverflow.com/questions/19917401/node-js-express-request-entity-tool-large) scheint verwandt, aber es ist für Express, die Sie nicht verwenden, so nicht sicher, ob es relevant ist . – aug

+0

vielleicht das ??? http://stackoverflow.com/questions/19917401/node-js-express-request-entity-too-large –

+0

Ich hatte ähnliche Probleme beim Hochladen von Bildern auf meinem Server + –

Antwort

1

Der VirusTotal file/scan API-Aufruf ist auf 32 MB begrenzt. Wenn Sie einen guten Anwendungsfall für das Scannen großer Dateien haben, können Sie VirusTotal um Zugriff auf einen anderen API-Aufruf für größere Dateien bitten, die Dateien bis zu 200 MB enthalten können.

0

Express fügt eine Grenze über die Größe der HTTP-Anforderung Körper, der damit umgehen kann. Sie müssen dies überschreiben. var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

+0

Das hat nichts mit Express zu tun. – Dustin