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",
|
"uploadId",
|
||||||
"uploads"
|
"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 static final Set<String> CANNED_ACLS = ImmutableSet.of(
|
||||||
"private",
|
"private",
|
||||||
"public-read",
|
"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");
|
String uploadId = request.getParameter("uploadId");
|
||||||
switch (method) {
|
switch (method) {
|
||||||
case "DELETE":
|
case "DELETE":
|
||||||
|
|
Ładowanie…
Reference in New Issue