@cloudbase/manager-node 3.12.0 → 3.12.1-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/storage/index.js +23 -9
- package/package.json +1 -1
- package/src/storage/index.ts +27 -13
package/lib/storage/index.js
CHANGED
|
@@ -894,26 +894,40 @@ class StorageService {
|
|
|
894
894
|
async uploadFilesWithRetry({ uploadFiles, options, times, interval, failedFiles }) {
|
|
895
895
|
const { files, onFileFinish } = options;
|
|
896
896
|
const tempFailedFiles = [];
|
|
897
|
+
let curError = null;
|
|
897
898
|
const res = await uploadFiles(Object.assign(Object.assign({}, options), { files: failedFiles.length
|
|
898
899
|
? files.filter(file => failedFiles.includes(file.Key))
|
|
899
900
|
: files, onFileFinish: (...args) => {
|
|
900
901
|
const error = args[0];
|
|
901
902
|
const fileInfo = args[2];
|
|
902
903
|
if (error) {
|
|
904
|
+
curError = error;
|
|
903
905
|
tempFailedFiles.push(fileInfo.Key);
|
|
904
906
|
}
|
|
905
907
|
onFileFinish === null || onFileFinish === void 0 ? void 0 : onFileFinish.apply(null, args);
|
|
906
908
|
} }));
|
|
907
|
-
if (!
|
|
909
|
+
// if (!tempFailedFiles?.length || times <= 0) return res
|
|
910
|
+
if (!(tempFailedFiles === null || tempFailedFiles === void 0 ? void 0 : tempFailedFiles.length)) {
|
|
908
911
|
return res;
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
912
|
+
}
|
|
913
|
+
else {
|
|
914
|
+
if (times > 0) {
|
|
915
|
+
return await new Promise((resolve, reject) => {
|
|
916
|
+
setTimeout(() => this.uploadFilesWithRetry({
|
|
917
|
+
uploadFiles,
|
|
918
|
+
options,
|
|
919
|
+
times: times - 1,
|
|
920
|
+
interval,
|
|
921
|
+
failedFiles: tempFailedFiles
|
|
922
|
+
}).then(res => resolve(res))
|
|
923
|
+
.catch(err => reject(err)), interval);
|
|
924
|
+
});
|
|
925
|
+
}
|
|
926
|
+
else {
|
|
927
|
+
if (curError) {
|
|
928
|
+
throw curError;
|
|
929
|
+
}
|
|
930
|
+
}
|
|
917
931
|
}
|
|
918
932
|
}
|
|
919
933
|
/**
|
package/package.json
CHANGED
package/src/storage/index.ts
CHANGED
|
@@ -1198,6 +1198,7 @@ export class StorageService {
|
|
|
1198
1198
|
private async uploadFilesWithRetry({ uploadFiles, options, times, interval, failedFiles }) {
|
|
1199
1199
|
const { files, onFileFinish } = options
|
|
1200
1200
|
const tempFailedFiles = []
|
|
1201
|
+
let curError: any = null
|
|
1201
1202
|
const res = await uploadFiles({
|
|
1202
1203
|
...options,
|
|
1203
1204
|
files: failedFiles.length
|
|
@@ -1207,24 +1208,37 @@ export class StorageService {
|
|
|
1207
1208
|
const error = args[0]
|
|
1208
1209
|
const fileInfo = (args as any)[2]
|
|
1209
1210
|
if (error) {
|
|
1211
|
+
curError = error
|
|
1210
1212
|
tempFailedFiles.push(fileInfo.Key)
|
|
1211
1213
|
}
|
|
1212
1214
|
onFileFinish?.apply(null, args)
|
|
1213
1215
|
}
|
|
1214
1216
|
})
|
|
1215
|
-
if (!tempFailedFiles?.length || times <= 0) return res
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1217
|
+
// if (!tempFailedFiles?.length || times <= 0) return res
|
|
1218
|
+
|
|
1219
|
+
if (!tempFailedFiles?.length) {
|
|
1220
|
+
return res
|
|
1221
|
+
} else {
|
|
1222
|
+
if (times > 0) {
|
|
1223
|
+
return await new Promise((resolve, reject) => {
|
|
1224
|
+
setTimeout(
|
|
1225
|
+
() =>
|
|
1226
|
+
this.uploadFilesWithRetry({
|
|
1227
|
+
uploadFiles,
|
|
1228
|
+
options,
|
|
1229
|
+
times: times - 1,
|
|
1230
|
+
interval,
|
|
1231
|
+
failedFiles: tempFailedFiles
|
|
1232
|
+
}).then(res => resolve(res))
|
|
1233
|
+
.catch(err => reject(err)),
|
|
1234
|
+
interval
|
|
1235
|
+
)
|
|
1236
|
+
})
|
|
1237
|
+
} else {
|
|
1238
|
+
if (curError) {
|
|
1239
|
+
throw curError
|
|
1240
|
+
}
|
|
1241
|
+
}
|
|
1228
1242
|
}
|
|
1229
1243
|
}
|
|
1230
1244
|
|