Как разделить файл с минимальным размером чанка
У меня есть функция которая делит большой файл на небольшие кусочки. Есть проблема что этот код делит фалй на части, но последний кусок может быть меньше чем chunkSize
const polyfilSlice = (file, chunkStart, chunkEnd, type) => {
if(file.slice) {
return file.slice([chunkStart], [chunkEnd], type)
}
if(file.webkitSlice){
return file.webkitSlice([chunkStart], [chunkEnd], type)
}
if(file.mozSlice) {
return file.mozSlice([chunkStart], [chunkEnd], type)
}
}
const getChunks = (file, chunkSize) => {
const fileSize = file.size
const chunkCount = fileSize % chunkSize === 0 ? fileSize % chunkSize : Math.floor(fileSize / chunkSize) + 1
let chunkStart = 0
let chunkEnd = chunkSize
var chunks = [];
for (var i = 0; i < chunkCount; i += 1) {
chunks.push(polyfilSlice(file, chunkStart, chunkEnd, "video/mp4"));
chunkStart = chunkEnd
chunkEnd = chunkEnd + chunkSize >= file.size ? file.size : chunkEnd + chunkSize
}
return chunks;
}
Есть необходимость что бы размер каждого чанка был не меньше и не больше установленых границ. Может кто подскажет алгоритм какой то разделения
Ответы (1 шт):
Автор решения: Влад Лесной
→ Ссылка
Нашел ответ. Может кому то поможет.
let fileSize =....
let minChunkSize = 5 * 1048576 // 5MB
let chunkCount = fileSize % minFileSize === 0 ? fileSize % minFileSize : Math.floor(fileSize / minFileSize)
let chunkSize = fileSize / chunkCount
И потом с помощью этого chunkSize делю уже файл на конкретные части таким образом каждая часть являеться больше установленого минимум