2015-05-17 19 views
6

Tôi đang cố gắng tải lên tệp nén 36MB lên Tổng số Virus bằng API công khai của họ trong NodeJS bằng yêu cầu. Tôi hiện đang gặp phải vấn đề này khi cố gắng tải lên và không thể tìm ra việc cần làm tiếp theo để khắc phục sự cố. API của họ không nêu rõ bất kỳ giới hạn kích thước tệp nào và trình tải lên giao diện người dùng của họ chỉ định giới hạn tải lên 128MB.NodeJS - Tải lên ~ 36MB tệp vào VirusTotal không

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

Mã thẳng và đơn giản nhưng thực sự không biết phải làm gì để khắc phục. Bất kỳ trợ giúp được đánh giá cao.

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) dường như có liên quan nhưng đó là Express mà bạn không sử dụng nên không chắc chắn nếu nó có liên quan . – aug

+0

có thể là ??? http://stackoverflow.com/questions/19917401/node-js-express-request-entity-too-large –

+0

Tôi gặp sự cố tương tự khi đăng hình ảnh lên máy chủ của mình + –

Trả lời

1

VirusTotal file/scan Cuộc gọi API được giới hạn ở 32MB. Nếu bạn có một trường hợp sử dụng tốt để quét các tệp lớn, bạn có thể yêu cầu VirusTotal truy cập vào một cuộc gọi API khác để có các tệp lớn hơn có thể chứa tối đa 200 MB.

0

Express thêm giới hạn về kích thước của cơ thể yêu cầu http mà nó có thể xử lý. Bạn cần ghi đè điều này. var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));

+0

Điều này không liên quan gì đến Express. – Dustin