Skip to content

Commit 7cdbb93

Browse files
authored
Merge pull request #400 from lepikhinb/chunk-keys-to-delete
Chunk deleted files into batches
2 parents 8c2716c + 4854e6c commit 7cdbb93

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

src/utils/s3-sync.ts

+16-5
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,24 @@ export async function s3Sync({
7676
const targetKeys = filesToUpload.map((file) =>
7777
targetPathPrefix !== undefined ? path.posix.join(targetPathPrefix, file) : file
7878
);
79+
7980
const keysToDelete = findKeysToDelete(Object.keys(existingS3Objects), targetKeys);
8081
if (keysToDelete.length > 0) {
81-
keysToDelete.map((key) => {
82-
getUtils().log.verbose(`Deleting ${key}`);
83-
fileChangeCount++;
84-
});
85-
await s3Delete(aws, bucketName, keysToDelete);
82+
const batch = chunk(keysToDelete, 1000);
83+
84+
await Promise.all(
85+
batch.map(async (keysToDeleteChunk, index) => {
86+
getUtils().log.verbose(`Deleting chunk #${index}`);
87+
88+
keysToDeleteChunk.map((key) => {
89+
getUtils().log.verbose(`Deleting ${key}`);
90+
fileChangeCount++;
91+
});
92+
93+
await s3Delete(aws, bucketName, keysToDeleteChunk);
94+
})
95+
);
96+
8697
hasChanges = true;
8798
}
8899

0 commit comments

Comments
 (0)