From 118b656f8eff5ed10b51355cf940c5a19adf9628 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Tue, 22 Dec 2015 18:41:15 -0800 Subject: [PATCH] Allow anonymous HEAD object on public-read objects --- src/main/java/org/gaul/s3proxy/S3ProxyHandler.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java b/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java index e510213..6c3551b 100644 --- a/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java +++ b/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java @@ -618,9 +618,18 @@ final class S3ProxyHandler extends AbstractHandler { if (!blobStore.containerExists(containerName)) { throw new S3Exception(S3ErrorCode.NO_SUCH_BUCKET); } - return; + } else { + String containerName = path[1]; + String blobName = path[2]; + BlobAccess access = blobStore.getBlobAccess(containerName, + blobName); + if (access == BlobAccess.PUBLIC_READ) { + handleBlobMetadata(response, blobStore, path[1], path[2]); + } else { + throw new S3Exception(S3ErrorCode.ACCESS_DENIED); + } } - break; + return; case "POST": if (path.length <= 2 || path[2].isEmpty()) { handlePostBlob(request, response, blobStore, path[1]);