2015-05-17 9 views
6

Próbuję przesłać plik ZIP 36MB do Virus Total przy użyciu ich publicznego interfejsu API w NodeJS za pomocą żądania. Obecnie próbuję przesłać ten problem i nie mogę ustalić, co zrobić, by go naprawić. Ich interfejs API nie określa limitu wielkości plików, a ich program ładujący frontend określa limit przesyłania danych wynoszący 128 MB.NodeJS - Prześlij plik ~ 36 MB do VirusTotal nie powiodło się

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

Kod jest prosty i prosty, ale naprawdę nie wiem, co zrobić, aby to naprawić. Każda pomoc jest doceniana.

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

[This] (http://stackoverflow.com/questions/19917401/node-js-express-request-entity-too-large) wydaje się być spokrewniony, ale dotyczy Expressu, którego nie używasz, więc nie masz pewności, czy jest to istotne . – aug

+0

może to ??? http://stackoverflow.com/questions/19917401/node-js-express-request-entity-too-large –

+0

Miałem podobne problemy podczas wysyłania zdjęć do mojego serwera + –

Odpowiedz

1

Wywołanie funkcji API VirusTotal file/scan jest ograniczone do 32 MB. Jeśli masz dobry przypadek użycia do skanowania dużych plików, możesz poprosić VirusTotal o dostęp do innego API dla większych plików, które mogą mieć pliki do 200 MB.

0

Express dodaje limit ponad rozmiar obiektu żądania http, który może obsłużyć. Musisz to zmienić. var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

+0

To nie ma nic wspólnego z Expressem. – Dustin

Powiązane problemy