diff --git a/src/main/java/io/kestra/storage/s3/S3Storage.java b/src/main/java/io/kestra/storage/s3/S3Storage.java index 249d06d..f099326 100644 --- a/src/main/java/io/kestra/storage/s3/S3Storage.java +++ b/src/main/java/io/kestra/storage/s3/S3Storage.java @@ -191,6 +191,9 @@ public List deleteByPrefix(String tenantId, URI storagePrefix) throws IOExc } private String getPath(String tenantId, URI uri) { + if (tenantId == null) { + return uri.getPath(); + } return "/" + tenantId + uri.getPath(); } private static URI createUri(String key) { diff --git a/src/test/java/io/kestra/storage/s3/S3StorageTest.java b/src/test/java/io/kestra/storage/s3/S3StorageTest.java index 0bf558d..068712b 100644 --- a/src/test/java/io/kestra/storage/s3/S3StorageTest.java +++ b/src/test/java/io/kestra/storage/s3/S3StorageTest.java @@ -84,6 +84,18 @@ void get() throws Exception { String prefix = IdUtils.create(); String tenantId = IdUtils.create(); + get(tenantId, prefix); + } + + @Test + void getNoTenant() throws Exception { + String prefix = IdUtils.create(); + String tenantId = null; + + get(tenantId, prefix); + } + + private void get(String tenantId, String prefix) throws Exception { URL resource = S3StorageTest.class.getClassLoader().getResource("application.yml"); String content = CharStreams.toString(new InputStreamReader(new FileInputStream(Objects.requireNonNull(resource).getFile()))); @@ -147,6 +159,18 @@ void deleteByPrefix() throws Exception { String prefix = IdUtils.create(); String tenantId = IdUtils.create(); + deleteByPrefix(prefix, tenantId); + } + + @Test + void deleteByPrefixNoTenant() throws Exception { + String prefix = IdUtils.create(); + String tenantId = null; + + deleteByPrefix(prefix, tenantId); + } + + private void deleteByPrefix(String prefix, String tenantId) throws Exception { URL resource = S3StorageTest.class.getClassLoader().getResource("application.yml"); List path = Arrays.asList(