Test for chunked encoding with anonymous access

References #145.
pull/257/head
Philipp Marx 2017-03-10 11:12:10 +01:00 zatwierdzone przez Andrew Gaul
rodzic d4968397ba
commit 24a3d64134
1 zmienionych plików z 29 dodań i 0 usunięć

Wyświetl plik

@ -16,6 +16,9 @@
package org.gaul.s3proxy;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.InputStream;
import java.net.URI;
import java.util.Random;
@ -27,6 +30,9 @@ import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.internal.SkipMd5CheckStrategy;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.S3Object;
import com.google.common.io.ByteSource;
import org.jclouds.blobstore.BlobStoreContext;
@ -42,6 +48,8 @@ public final class AwsSdkAnonymousTest {
AwsSdkTest.disableSslVerification();
}
private static final ByteSource BYTE_SOURCE = ByteSource.wrap(new byte[1]);
private URI s3Endpoint;
private EndpointConfiguration s3EndpointConfig;
private S3Proxy s3Proxy;
@ -100,6 +108,27 @@ public final class AwsSdkAnonymousTest {
client.listBuckets();
}
@Test
public void testAwsV4SignatureChunkedAnonymous() throws Exception {
client = AmazonS3ClientBuilder.standard()
.withChunkedEncodingDisabled(false)
.withEndpointConfiguration(s3EndpointConfig)
.build();
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(BYTE_SOURCE.size());
client.putObject(containerName, "foo", BYTE_SOURCE.openStream(),
metadata);
S3Object object = client.getObject(containerName, "foo");
assertThat(object.getObjectMetadata().getContentLength()).isEqualTo(
BYTE_SOURCE.size());
try (InputStream actual = object.getObjectContent();
InputStream expected = BYTE_SOURCE.openStream()) {
assertThat(actual).hasContentEqualTo(expected);
}
}
private static String createRandomContainerName() {
return "s3proxy-" + new Random().nextInt(Integer.MAX_VALUE);
}