diff --git a/pom.xml b/pom.xml index dc6e4ea..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.0 + 3.3.0 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);