Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 7 additions & 9 deletions src/main/java/dev/zarr/zarrjava/store/S3Store.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,7 @@
import software.amazon.awssdk.core.ResponseInputStream;
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.DeleteObjectRequest;
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
import software.amazon.awssdk.services.s3.model.GetObjectResponse;
import software.amazon.awssdk.services.s3.model.HeadObjectRequest;
import software.amazon.awssdk.services.s3.model.ListObjectsRequest;
import software.amazon.awssdk.services.s3.model.ListObjectsResponse;
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
import software.amazon.awssdk.services.s3.model.*;

import java.io.ByteArrayInputStream;
import java.io.IOException;
Expand Down Expand Up @@ -57,7 +51,11 @@ ByteBuffer get(GetObjectRequest getObjectRequest) {
@Override
public boolean exists(String[] keys) {
HeadObjectRequest req = HeadObjectRequest.builder().bucket(bucketName).key(resolveKeys(keys)).build();
return s3client.headObject(req).sdkHttpResponse().statusCode() == 200;
try {
return s3client.headObject(req).sdkHttpResponse().statusCode() == 200;
} catch (NoSuchKeyException e) {
return false;
}
}

@Nullable
Expand All @@ -84,7 +82,7 @@ public ByteBuffer get(String[] keys, long start, long end) {
GetObjectRequest req = GetObjectRequest.builder()
.bucket(bucketName)
.key(resolveKeys(keys))
.range(String.valueOf(start)+"-"+String.valueOf(end))
.range(start +"-"+ end)
.build();
return get(req);
}
Expand Down
9 changes: 7 additions & 2 deletions src/test/java/dev/zarr/zarrjava/ZarrStoreTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,14 @@ public void testS3Store() throws IOException, ZarrException {
.region(Region.of("eu-west-1"))
.credentialsProvider(AnonymousCredentialsProvider.create())
.build(), "static.webknossos.org", "data");
Array array = Array.open(s3Store.resolve("zarr_v3", "l4_sample", "color", "1"));

Assertions.assertArrayEquals(new long[]{1, 4096, 4096, 2048}, array.metadata().shape);
Array arrayV3 = Array.open(s3Store.resolve("zarr_v3", "l4_sample", "color", "1"));
Assertions.assertArrayEquals(new long[]{1, 4096, 4096, 2048}, arrayV3.metadata().shape);
Assertions.assertEquals(0, arrayV3.read(new long[]{0,0,0,0}, new int[]{1,1,1,1}).getInt(0));

dev.zarr.zarrjava.core.Array arrayCore = dev.zarr.zarrjava.core.Array.open(s3Store.resolve("zarr_v3", "l4_sample", "color", "1"));
Assertions.assertArrayEquals(new long[]{1, 4096, 4096, 2048}, arrayCore.metadata().shape);
Assertions.assertEquals(0, arrayCore.read(new long[]{0,0,0,0}, new int[]{1,1,1,1}).getInt(0));
}

@Test
Expand Down
Loading