Я хочу предоставить возможность загружать zip-файл размером более 1 ГБ в мое веб-приложение. Я использую nodejs версии 8.11.3 с использованием модуля узла Multer на стороне сервера. При локальном тестировании этой функции она работает нормально, однако, когда я размещаю свое приложение на любом облачном сервере (независимо от поставщика облачных услуг), он не работает, что приводит к не отвечающему браузеру. Похоже, что существует проблема при загрузке файла через сеть. Пробовал через запрос фидлера / почтальона, но безуспешно.
Уже следуют решения, упомянутые в ссылках:
Попытка отправки файловых данных по частям привела к тому, что многие запросы http завершились сбоем браузера.
https://hpbn.co/xmlhttprequest/
Попытка использовать веб-сокеты для отправки данных (тот же результат)
https://github.com/rico345100/socket.io-file-client
Пробный подход по FTP
http://ftp.apixml.net/
// код на стороне сервера
let limits = {
files: 1,
fileSize: 5000 * 1024 * 1024
}
uploads = multer({
dest: "/uploads/",
limits: limits,
fileFilter: function(req, file, cb) {
...
}
});
// Код на стороне клиента
var fd = new FormData();
fd.append("fileToUpload", blobFile);
var xhr = new window.XMLHttpRequest();
$.ajax({
url: `/upload`,
type: "POST",
data: fd,
processData: false,
contentType: false,
xhr: function() {
},
success: function(response) {
},
error: function(errorMsgResp) {
}
});
Ожидаемый результат: файл должен быть загружен, даже если его размер превышает 1 ГБ без каких-либо проблем с производительностью.