下载优化
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2026-08-06 15:56:17 +08:00
parent 8315bcf59f
commit 3cf1cf5f91
1 changed files with 14 additions and 8 deletions

View File

@ -14,7 +14,7 @@ function zipFiles(zipName, files) {
let zipFileOutputStream = streamSaver.createWriteStream(zipName);
// 创建下载文件流
const fileIterator = files.values();
let Url = null;
let Url = [];
let readableZipStream = new ZIP({
async pull(ctrl) {
const fileInfo = fileIterator.next();
@ -24,7 +24,7 @@ function zipFiles(zipName, files) {
let { name, url, IsEncapsulated = false } = fileInfo.value;
if (IsEncapsulated) {
url = await downloadFileToUrl(url)
Url = url
Url.push(url)
}
// url = decodeUtf8(url); // 待定,可能做过特殊处理
return fetch(url).then(res => {
@ -45,8 +45,10 @@ function zipFiles(zipName, files) {
store.dispatch('trials/setUnLock', false)
readableZipStream = null;
zipFileOutputStream = null;
if (Url) {
URL.revokeObjectURL(Url)
if (Url && Url.length > 0) {
Url.forEach(url => {
URL.revokeObjectURL(url)
})
Url = null
}
resolve(true)
@ -54,8 +56,10 @@ function zipFiles(zipName, files) {
console.log(err);
readableZipStream = null;
zipFileOutputStream = null;
if (Url) {
URL.revokeObjectURL(Url)
if (Url && Url.length > 0) {
Url.forEach(url => {
URL.revokeObjectURL(url)
})
Url = null
}
resolve(false)
@ -63,8 +67,10 @@ function zipFiles(zipName, files) {
} else {
readableZipStream = null;
zipFileOutputStream = null;
if (Url) {
URL.revokeObjectURL(Url)
if (Url && Url.length > 0) {
Url.forEach(url => {
URL.revokeObjectURL(url)
})
Url = null
}
resolve(false)