en un Google Script tengo que descargar archivos de más de 50 MB. El servidor que sirve archivos admite el comando de rango, por lo que puedo descargar fragmentos de archivos pero tengo problemas durante el proceso de fusión.
Siguiendo un ejemplo del código que traté de usar y el problema que enfrenté (RangeError: longitud de matriz no válida)
let pieceSize = 52428800; let steps = Math.ceil(fileSize / pieceSize); let blobs = []; let datas = null; for (let i = 0; i < steps; i++){ let b = "bytes=" +(i*pieceSize)+ "-"+Math.min((i+1)*pieceSize-1, fileSize); let params = {method: "get", headers: { Range: b, }, }; Logger.log("Gettinng piece "+i+" : "+b); blobs.push(UrlFetchApp.fetch(url, params).getBlob()); if (datas == null){ datas = blobs[i].getBytes(); } else { datas = datas.concat(blobs[i].getBytes()); // RangeError: Invalid array length } } let blob = Utilities.newBlob(datas); let file = DriveApp.createFile(blob)Busqué otras soluciones para fusionar los datos descargados (¿quizás como archivos o como blobs?), pero no puedo encontrar funciones para alcanzar mi objetivo sin moverme a Byte[].
Gracias