From 09024e199cc7f933ea4dcbb6650384eea9843ab6 Mon Sep 17 00:00:00 2001 From: Caleb Hulbert Date: Wed, 10 Jul 2024 13:34:56 -0400 Subject: [PATCH 1/2] perf: throw N5NoSuchKeyException if no key when reading --- pom.xml | 2 +- .../saalfeldlab/n5/s3/AmazonS3KeyValueAccess.java | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index dc6e4ea..585f748 100644 --- a/pom.xml +++ b/pom.xml @@ -120,7 +120,7 @@ 0.2.5 2.2.2 - 3.2.0 + 3.2.1-SNAPSHOT diff --git a/src/main/java/org/janelia/saalfeldlab/n5/s3/AmazonS3KeyValueAccess.java b/src/main/java/org/janelia/saalfeldlab/n5/s3/AmazonS3KeyValueAccess.java index abfbcbf..8a20a59 100644 --- a/src/main/java/org/janelia/saalfeldlab/n5/s3/AmazonS3KeyValueAccess.java +++ b/src/main/java/org/janelia/saalfeldlab/n5/s3/AmazonS3KeyValueAccess.java @@ -47,7 +47,8 @@ import java.util.List; import java.util.stream.Collectors; -import com.amazonaws.services.s3.AmazonS3URI; +import com.amazonaws.AmazonServiceException; +import com.amazonaws.services.s3.model.S3Object; import org.janelia.saalfeldlab.n5.KeyValueAccess; import org.janelia.saalfeldlab.n5.LockedChannel; import org.janelia.saalfeldlab.n5.N5Exception; @@ -603,7 +604,15 @@ private void checkWritable() { @Override public InputStream newInputStream() { - final S3ObjectInputStream in = s3.getObject(bucketName, path).getObjectContent(); + final S3Object object; + try { + object = s3.getObject(bucketName, path); + } catch (final AmazonServiceException e) { + if (e.getStatusCode() == 404) + throw new N5Exception.N5NoSuchKeyException("No such key", e); + throw e; + } + final S3ObjectInputStream in = object.getObjectContent(); final S3ObjectInputStreamDrain s3in = new S3ObjectInputStreamDrain(in); synchronized (resources) { resources.add(s3in); From ba5020bb717e10595294e6d237d75b4bac7d45b0 Mon Sep 17 00:00:00 2001 From: John Bogovic Date: Tue, 16 Jul 2024 10:34:34 -0400 Subject: [PATCH 2/2] chore: bump pom-scijava and n5 versions --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 585f748..ed15fee 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.scijava pom-scijava - 37.0.0 + 38.0.1 @@ -120,7 +120,7 @@ 0.2.5 2.2.2 - 3.2.1-SNAPSHOT + 3.3.0