Add test for 10,000 part MPU

References #80.
pull/87/merge
Andrew Gaul 2015-10-20 14:42:22 -07:00
rodzic 97d467a698
commit d4f20646b4
1 zmienionych plików z 34 dodań i 0 usunięć

Wyświetl plik

@ -465,6 +465,40 @@ public final class S3ProxyTest {
userMetadata);
}
@Test
public void testMaximumMultipartUpload() throws Exception {
String blobName = "multipart-upload";
int numParts = 10_000;
ByteSource byteSource = TestUtils.randomByteSource().slice(0, numParts);
BlobMetadata blobMetadata = s3BlobStore.blobBuilder(blobName)
.payload(new byte[0]) // fake payload to add content metadata
.build()
.getMetadata();
MultipartUpload mpu = s3BlobStore.initiateMultipartUpload(
containerName, blobMetadata);
ImmutableList.Builder<MultipartPart> parts = ImmutableList.builder();
for (int i = 0; i < numParts; ++i) {
ByteSource partByteSource = byteSource.slice(i, 1);
// TODO: wrap sliced byte source to work around zero length bug
partByteSource = ByteSource.wrap(partByteSource.read());
assertThat(partByteSource.size()).isEqualTo(1); // TODO:
Payload payload = Payloads.newByteSourcePayload(partByteSource);
payload.getContentMetadata().setContentLength(
partByteSource.size());
parts.add(s3BlobStore.uploadMultipartPart(mpu, i + 1, payload));
}
s3BlobStore.completeMultipartUpload(mpu, parts.build());
Blob newBlob = s3BlobStore.getBlob(containerName, blobName);
try (InputStream actual = newBlob.getPayload().openStream();
InputStream expected = byteSource.openStream()) {
assertThat(actual).hasContentEqualTo(expected);
}
}
@Test
public void testCopyObjectPreserveMetadata() throws Exception {
String fromName = "from-name";