kopia lustrzana https://github.com/gaul/s3proxy
rodzic
21ea62ec93
commit
c8d8126b3f
|
@ -75,6 +75,8 @@ enum S3ErrorCode {
|
||||||
"The specified bucket does not exist"),
|
"The specified bucket does not exist"),
|
||||||
NO_SUCH_KEY(HttpServletResponse.SC_NOT_FOUND,
|
NO_SUCH_KEY(HttpServletResponse.SC_NOT_FOUND,
|
||||||
"The specified key does not exist."),
|
"The specified key does not exist."),
|
||||||
|
NO_SUCH_POLICY(HttpServletResponse.SC_NOT_FOUND,
|
||||||
|
"The specified bucket does not have a bucket policy."),
|
||||||
NO_SUCH_UPLOAD(HttpServletResponse.SC_NOT_FOUND, "Not Found"),
|
NO_SUCH_UPLOAD(HttpServletResponse.SC_NOT_FOUND, "Not Found"),
|
||||||
NOT_IMPLEMENTED(HttpServletResponse.SC_NOT_IMPLEMENTED,
|
NOT_IMPLEMENTED(HttpServletResponse.SC_NOT_IMPLEMENTED,
|
||||||
"A header you provided implies functionality that is not" +
|
"A header you provided implies functionality that is not" +
|
||||||
|
|
|
@ -146,7 +146,6 @@ public class S3ProxyHandler {
|
||||||
"logging",
|
"logging",
|
||||||
"metrics",
|
"metrics",
|
||||||
"notification",
|
"notification",
|
||||||
"policy",
|
|
||||||
"replication",
|
"replication",
|
||||||
"requestPayment",
|
"requestPayment",
|
||||||
"restore",
|
"restore",
|
||||||
|
@ -657,6 +656,9 @@ public class S3ProxyHandler {
|
||||||
} else if ("".equals(request.getParameter("location"))) {
|
} else if ("".equals(request.getParameter("location"))) {
|
||||||
handleContainerLocation(response);
|
handleContainerLocation(response);
|
||||||
return;
|
return;
|
||||||
|
} else if ("".equals(request.getParameter("policy"))) {
|
||||||
|
handleBucketPolicy(response, blobStore, path[1]);
|
||||||
|
return;
|
||||||
} else if ("".equals(request.getParameter("uploads"))) {
|
} else if ("".equals(request.getParameter("uploads"))) {
|
||||||
handleListMultipartUploads(request, response, blobStore,
|
handleListMultipartUploads(request, response, blobStore,
|
||||||
path[1]);
|
path[1]);
|
||||||
|
@ -1135,6 +1137,14 @@ public class S3ProxyHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void handleBucketPolicy(HttpServletResponse response,
|
||||||
|
BlobStore blobStore, String containerName) throws S3Exception {
|
||||||
|
if (!blobStore.containerExists(containerName)) {
|
||||||
|
throw new S3Exception(S3ErrorCode.NO_SUCH_BUCKET);
|
||||||
|
}
|
||||||
|
throw new S3Exception(S3ErrorCode.NO_SUCH_POLICY);
|
||||||
|
}
|
||||||
|
|
||||||
private void handleListMultipartUploads(HttpServletRequest request,
|
private void handleListMultipartUploads(HttpServletRequest request,
|
||||||
HttpServletResponse response, BlobStore blobStore,
|
HttpServletResponse response, BlobStore blobStore,
|
||||||
String container) throws IOException, S3Exception {
|
String container) throws IOException, S3Exception {
|
||||||
|
|
|
@ -1443,6 +1443,16 @@ public final class AwsSdkTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetBucketPolicy() throws Exception {
|
||||||
|
try {
|
||||||
|
client.getBucketPolicy(containerName);
|
||||||
|
Fail.failBecauseExceptionWasNotThrown(AmazonS3Exception.class);
|
||||||
|
} catch (AmazonS3Exception e) {
|
||||||
|
assertThat(e.getErrorCode()).isEqualTo("NoSuchPolicy");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUnknownParameter() throws Exception {
|
public void testUnknownParameter() throws Exception {
|
||||||
try {
|
try {
|
||||||
|
|
Ładowanie…
Reference in New Issue