kopia lustrzana https://github.com/gaul/s3proxy
rodzic
d878642b5d
commit
2296b8228b
|
@ -124,6 +124,8 @@ public final class Main {
|
|||
S3ProxyConstants.PROPERTY_VIRTUAL_HOST);
|
||||
String v4MaxNonChunkedRequestSize = properties.getProperty(
|
||||
S3ProxyConstants.PROPERTY_V4_MAX_NON_CHUNKED_REQUEST_SIZE);
|
||||
String ignoreUnknownHeaders = properties.getProperty(
|
||||
S3ProxyConstants.PROPERTY_IGNORE_UNKNOWN_HEADERS);
|
||||
|
||||
BlobStore blobStore = createBlobStore(properties);
|
||||
|
||||
|
@ -178,7 +180,11 @@ public final class Main {
|
|||
}
|
||||
if (v4MaxNonChunkedRequestSize != null) {
|
||||
s3ProxyBuilder.v4MaxNonChunkedRequestSize(Long.parseLong(
|
||||
v4MaxNonChunkedRequestSize));
|
||||
v4MaxNonChunkedRequestSize));
|
||||
}
|
||||
if (ignoreUnknownHeaders != null) {
|
||||
s3ProxyBuilder.ignoreUnknownHeaders(Boolean.parseBoolean(
|
||||
ignoreUnknownHeaders));
|
||||
}
|
||||
s3Proxy = s3ProxyBuilder.build();
|
||||
} catch (IllegalArgumentException | IllegalStateException e) {
|
||||
|
|
|
@ -103,7 +103,8 @@ public final class S3Proxy {
|
|||
}
|
||||
handler = new S3ProxyHandler(builder.blobStore, builder.identity,
|
||||
builder.credential, Optional.fromNullable(builder.virtualHost),
|
||||
builder.v4MaxNonChunkedRequestSize);
|
||||
builder.v4MaxNonChunkedRequestSize,
|
||||
builder.ignoreUnknownHeaders);
|
||||
server.setHandler(handler);
|
||||
}
|
||||
|
||||
|
@ -117,6 +118,7 @@ public final class S3Proxy {
|
|||
private String keyStorePassword;
|
||||
private String virtualHost;
|
||||
private long v4MaxNonChunkedRequestSize = 32 * 1024 * 1024;
|
||||
private boolean ignoreUnknownHeaders;
|
||||
|
||||
Builder() {
|
||||
}
|
||||
|
@ -167,6 +169,11 @@ public final class S3Proxy {
|
|||
this.v4MaxNonChunkedRequestSize = v4MaxNonChunkedRequestSize;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder ignoreUnknownHeaders(boolean ignoreUnknownHeaders) {
|
||||
this.ignoreUnknownHeaders = ignoreUnknownHeaders;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public static Builder builder() {
|
||||
|
|
|
@ -27,6 +27,8 @@ public final class S3ProxyConstants {
|
|||
"s3proxy.identity";
|
||||
public static final String PROPERTY_CREDENTIAL =
|
||||
"s3proxy.credential";
|
||||
public static final String PROPERTY_IGNORE_UNKNOWN_HEADERS =
|
||||
"s3proxy.ignore-unknown-headers";
|
||||
public static final String PROPERTY_KEYSTORE_PATH =
|
||||
"s3proxy.keystore-path";
|
||||
public static final String PROPERTY_KEYSTORE_PASSWORD =
|
||||
|
|
|
@ -187,6 +187,7 @@ final class S3ProxyHandler extends AbstractHandler {
|
|||
private final boolean anonymousIdentity;
|
||||
private final Optional<String> virtualHost;
|
||||
private final long v4MaxNonChunkedRequestSize;
|
||||
private final boolean ignoreUnknownHeaders;
|
||||
private final XMLOutputFactory xmlOutputFactory =
|
||||
XMLOutputFactory.newInstance();
|
||||
private BlobStoreLocator blobStoreLocator;
|
||||
|
@ -206,7 +207,7 @@ final class S3ProxyHandler extends AbstractHandler {
|
|||
|
||||
S3ProxyHandler(final BlobStore blobStore, final String identity,
|
||||
final String credential, Optional<String> virtualHost,
|
||||
long v4MaxNonChunkedRequestSize) {
|
||||
long v4MaxNonChunkedRequestSize, boolean ignoreUnknownHeaders) {
|
||||
if (identity != null) {
|
||||
anonymousIdentity = false;
|
||||
blobStoreLocator = new BlobStoreLocator() {
|
||||
|
@ -233,6 +234,7 @@ final class S3ProxyHandler extends AbstractHandler {
|
|||
}
|
||||
this.virtualHost = requireNonNull(virtualHost);
|
||||
this.v4MaxNonChunkedRequestSize = v4MaxNonChunkedRequestSize;
|
||||
this.ignoreUnknownHeaders = ignoreUnknownHeaders;
|
||||
this.defaultBlobStore = blobStore;
|
||||
xmlOutputFactory.setProperty("javax.xml.stream.isRepairingNamespaces",
|
||||
Boolean.FALSE);
|
||||
|
@ -457,6 +459,9 @@ final class S3ProxyHandler extends AbstractHandler {
|
|||
|
||||
// emit NotImplemented for unknown x-amz- headers
|
||||
for (String headerName : Collections.list(request.getHeaderNames())) {
|
||||
if (ignoreUnknownHeaders) {
|
||||
continue;
|
||||
}
|
||||
if (!headerName.startsWith("x-amz-")) {
|
||||
continue;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue