使用JSZip库,制作Zip并下载多个文件需要花费太多时间。 makeZipTest(data,fileName)中的参数“ data”仅是下载S3 URL。
function makeZipTest(data,fileName){
var length = data.length;
var count = 0;
data.forEach(function(url){
// loading a file and add it in a zip file
zip.file(fileName[count],
urlToPromise(url),
{binary:true});
count++;
if (count == length) {
zip.generateAsync({type:"blob"})
.then(function (blob) {
saveAs(blob, "TestZip.zip");
}, function (err) {
});
}
});
}
function urlToPromise(url) {
return new Promise(function(resolve, reject) {
JSZipUtils.getBinaryContent(url, function (err, data) {
if(err) {
reject(err);
} else {
console.log(data);
resolve(data);
}
});
});
}