Skip to content

Commit acd8cc0

Browse files
authored
catch NoSuchKeyException for S3Store.exists (#31)
1 parent e101af0 commit acd8cc0

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

src/main/java/dev/zarr/zarrjava/store/S3Store.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,7 @@
44
import software.amazon.awssdk.core.ResponseInputStream;
55
import software.amazon.awssdk.core.sync.RequestBody;
66
import software.amazon.awssdk.services.s3.S3Client;
7-
import software.amazon.awssdk.services.s3.model.DeleteObjectRequest;
8-
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
9-
import software.amazon.awssdk.services.s3.model.GetObjectResponse;
10-
import software.amazon.awssdk.services.s3.model.HeadObjectRequest;
11-
import software.amazon.awssdk.services.s3.model.ListObjectsRequest;
12-
import software.amazon.awssdk.services.s3.model.ListObjectsResponse;
13-
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
7+
import software.amazon.awssdk.services.s3.model.*;
148

159
import java.io.ByteArrayInputStream;
1610
import java.io.IOException;
@@ -57,7 +51,11 @@ ByteBuffer get(GetObjectRequest getObjectRequest) {
5751
@Override
5852
public boolean exists(String[] keys) {
5953
HeadObjectRequest req = HeadObjectRequest.builder().bucket(bucketName).key(resolveKeys(keys)).build();
60-
return s3client.headObject(req).sdkHttpResponse().statusCode() == 200;
54+
try {
55+
return s3client.headObject(req).sdkHttpResponse().statusCode() == 200;
56+
} catch (NoSuchKeyException e) {
57+
return false;
58+
}
6159
}
6260

6361
@Nullable
@@ -84,7 +82,7 @@ public ByteBuffer get(String[] keys, long start, long end) {
8482
GetObjectRequest req = GetObjectRequest.builder()
8583
.bucket(bucketName)
8684
.key(resolveKeys(keys))
87-
.range(String.valueOf(start)+"-"+String.valueOf(end))
85+
.range(start +"-"+ end)
8886
.build();
8987
return get(req);
9088
}

src/test/java/dev/zarr/zarrjava/ZarrStoreTest.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,14 @@ public void testS3Store() throws IOException, ZarrException {
6161
.region(Region.of("eu-west-1"))
6262
.credentialsProvider(AnonymousCredentialsProvider.create())
6363
.build(), "static.webknossos.org", "data");
64-
Array array = Array.open(s3Store.resolve("zarr_v3", "l4_sample", "color", "1"));
6564

66-
Assertions.assertArrayEquals(new long[]{1, 4096, 4096, 2048}, array.metadata().shape);
65+
Array arrayV3 = Array.open(s3Store.resolve("zarr_v3", "l4_sample", "color", "1"));
66+
Assertions.assertArrayEquals(new long[]{1, 4096, 4096, 2048}, arrayV3.metadata().shape);
67+
Assertions.assertEquals(0, arrayV3.read(new long[]{0,0,0,0}, new int[]{1,1,1,1}).getInt(0));
68+
69+
dev.zarr.zarrjava.core.Array arrayCore = dev.zarr.zarrjava.core.Array.open(s3Store.resolve("zarr_v3", "l4_sample", "color", "1"));
70+
Assertions.assertArrayEquals(new long[]{1, 4096, 4096, 2048}, arrayCore.metadata().shape);
71+
Assertions.assertEquals(0, arrayCore.read(new long[]{0,0,0,0}, new int[]{1,1,1,1}).getInt(0));
6772
}
6873

6974
@Test

0 commit comments

Comments
 (0)