diff --git a/packages/core/src/ObjectStore/ObjectStore.service.ee.ts b/packages/core/src/ObjectStore/ObjectStore.service.ee.ts index cb6c337373..e289cbfbb2 100644 --- a/packages/core/src/ObjectStore/ObjectStore.service.ee.ts +++ b/packages/core/src/ObjectStore/ObjectStore.service.ee.ts @@ -149,6 +149,8 @@ export class ObjectStoreService { async deleteMany(prefix: string) { const objects = await this.list(prefix); + if (objects.length === 0) return; + const innerXml = objects.map(({ key }) => `${key}`).join('\n'); const body = ['', innerXml, ''].join('\n'); diff --git a/packages/core/test/ObjectStore.service.test.ts b/packages/core/test/ObjectStore.service.test.ts index bb87a0e0a5..07df127ba7 100644 --- a/packages/core/test/ObjectStore.service.test.ts +++ b/packages/core/test/ObjectStore.service.test.ts @@ -248,6 +248,14 @@ describe('deleteMany()', () => { ); }); + it('should not send a deletion request if no prefix match', async () => { + objectStoreService.list = jest.fn().mockResolvedValue([]); + + const result = await objectStoreService.deleteMany('non-matching-prefix'); + + expect(result).toBeUndefined(); + }); + it('should throw an error on request failure', async () => { mockAxios.request.mockRejectedValue(mockError);