I am using react on frontend and express on backend.
Here is my code that I use to upload files:
const formData = new FormData();
formData.append('file', blob);
formData.append('title', videoName);
const request = new XMLHttpRequest();
request.open('POST', `${process.env.URL}/api/video`);
request.withCredentials = true;
request.setRequestHeader('lang', router.locale as string)
request.upload.onprogress = e => {
setUploadProgress(Math.floor((e.loaded / e.total) * 100));
};
request.onload = () => {
const resp = JSON.parse(request.response);
setRequestErr({
mess: resp.message,
code: resp.statusCode
})
resp.statusCode === 401 && logoutUser()
setIsVideoBeingSent(false);
setModalType('info')
if(resp.status === 200){
setModalInfoType('success')
} else{
setModalInfoType('fail')
}
};
request.send(formData);
It works perfectly locally, on both smaller and larger files (up to 150mb).
The problem occurs when I try to upload the file to a server hosted on amazon. The 150mb file stops at about 25 percent and does not move further.
I am using express-fileupload with settings:
const fileUpload = require('express-fileupload');
let Options = {
limits: { fileSize: 200 * 1024 * 1024 },
useTempFiles: true,
abortOnLimit: true,
tempFileDir: './content/tmp/',
uploadTimeout: 0,
debug: true,
}
router.post("/", TokenVerify, fileUpload(Options), UploadVideo);
Console in server shows nothing, no errors or other messages. Console in the browser returns only:
POST /api/video net::ERR_CONNECTION_ABORTED
What could be the cause of this?