Я пытаюсь загрузить большой медиа-файл с request
и bluebird
.Вот мой код
const options = {
url: 'someuploadurl',
method: 'POST',
json: true,
headers: {
Authorization: 'Bearer access_token',
'Content-Type': 'multipart/form-data'
},
formData: {
file: {
value: mediaData,
options: { filename: 'myMedia.mp4', contentType: 'video/mp4'}
}
}
}
const uploadFunction = (options) => {
new Promise((resolve, reject) => {
request(options, (error, response, body) => {
if(error){
reject(error)
}
resolve(body)
})
}).then(console.log).catch(console.log)
}
const sendMultipleRequests = () => {
const totalRequests = [1, 2, 3, 4, 5, 6, 7, 8]
// make 8 requests at once
blueBird.map(totalRequests, () => {
uploadFunction(options)
})
}
Этот код работает, когда totalRequests.length
равен 3 или меньше.Также код работает, когда все мультимедийные файлы имеют небольшой размер (<2-3 МБ), но когда мультимедийные файлы имеют большой размер (> 30 МБ), он ломается, код выдает ошибку Socket hang up
.
Я видел использование памяти моей системой, так как запрос увеличивает использование памяти, увеличивается, процесс занимает всю оперативную память, а затем происходит сбой кода с ошибкой.
Пожалуйста, дайте мне знать, как заставить этот код работать, или вы можете поделиться любым другим способом загрузки мультимедиа, которое будет работать в этом сценарии.