kopia lustrzana https://github.com/gaul/s3proxy
Emit NotImplemented for unknown x-amz headers
rodzic
b85dc31d48
commit
0daa04a3ed
|
@ -148,6 +148,15 @@ final class S3ProxyHandler extends AbstractHandler {
|
|||
"uploadId",
|
||||
"uploads"
|
||||
);
|
||||
/** All supported x-amz- headers, except for x-amz-meta- user metadata. */
|
||||
private static final Set<String> SUPPORTED_X_AMZ_HEADERS = ImmutableSet.of(
|
||||
"x-amz-acl",
|
||||
"x-amz-copy-source",
|
||||
"x-amz-copy-source-range",
|
||||
"x-amz-date",
|
||||
"x-amz-metadata-directive",
|
||||
"x-amz-storage-class" // ignored
|
||||
);
|
||||
private static final Set<String> CANNED_ACLS = ImmutableSet.of(
|
||||
"private",
|
||||
"public-read",
|
||||
|
@ -383,6 +392,21 @@ final class S3ProxyHandler extends AbstractHandler {
|
|||
}
|
||||
}
|
||||
|
||||
// emit NotImplemented for unknown x-amz- headers
|
||||
for (String headerName : Collections.list(request.getHeaderNames())) {
|
||||
if (!headerName.startsWith("x-amz-")) {
|
||||
continue;
|
||||
}
|
||||
if (headerName.startsWith("x-amz-meta-")) {
|
||||
continue;
|
||||
}
|
||||
if (!SUPPORTED_X_AMZ_HEADERS.contains(headerName)) {
|
||||
logger.error("Unknown header {} with URI {}",
|
||||
headerName, request.getRequestURI());
|
||||
throw new S3Exception(S3ErrorCode.NOT_IMPLEMENTED);
|
||||
}
|
||||
}
|
||||
|
||||
String uploadId = request.getParameter("uploadId");
|
||||
switch (method) {
|
||||
case "DELETE":
|
||||
|
|
Ładowanie…
Reference in New Issue