kopia lustrzana https://github.com/gaul/s3proxy
Avoid mutable ArrayList
Latest AWS SDK handles immutable List. Also tidy up line wrapping.pull/114/head
rodzic
ef3a7a6adf
commit
3aed140a15
|
@ -24,7 +24,6 @@ import java.net.URL;
|
||||||
import java.security.KeyManagementException;
|
import java.security.KeyManagementException;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
@ -58,12 +57,12 @@ import com.amazonaws.services.s3.model.InitiateMultipartUploadResult;
|
||||||
import com.amazonaws.services.s3.model.ObjectListing;
|
import com.amazonaws.services.s3.model.ObjectListing;
|
||||||
import com.amazonaws.services.s3.model.ObjectMetadata;
|
import com.amazonaws.services.s3.model.ObjectMetadata;
|
||||||
import com.amazonaws.services.s3.model.Owner;
|
import com.amazonaws.services.s3.model.Owner;
|
||||||
import com.amazonaws.services.s3.model.PartETag;
|
|
||||||
import com.amazonaws.services.s3.model.S3Object;
|
import com.amazonaws.services.s3.model.S3Object;
|
||||||
import com.amazonaws.services.s3.model.S3ObjectSummary;
|
import com.amazonaws.services.s3.model.S3ObjectSummary;
|
||||||
import com.amazonaws.services.s3.model.UploadPartRequest;
|
import com.amazonaws.services.s3.model.UploadPartRequest;
|
||||||
import com.amazonaws.services.s3.model.UploadPartResult;
|
import com.amazonaws.services.s3.model.UploadPartResult;
|
||||||
import com.google.common.base.Throwables;
|
import com.google.common.base.Throwables;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.io.ByteSource;
|
import com.google.common.io.ByteSource;
|
||||||
|
|
||||||
|
@ -285,19 +284,16 @@ public final class S3AwsSdkTest {
|
||||||
.withDestinationKey(targetBlobName)
|
.withDestinationKey(targetBlobName)
|
||||||
.withSourceBucketName(containerName)
|
.withSourceBucketName(containerName)
|
||||||
.withSourceKey(sourceBlobName)
|
.withSourceKey(sourceBlobName)
|
||||||
.withUploadId(initResult.getUploadId())
|
.withUploadId(uploadId)
|
||||||
.withFirstByte(0L)
|
.withFirstByte(0L)
|
||||||
.withLastByte(BYTE_SOURCE.size() - 1)
|
.withLastByte(BYTE_SOURCE.size() - 1)
|
||||||
.withPartNumber(1);
|
.withPartNumber(1);
|
||||||
CopyPartResult copyPartResult = client.copyPart(copyRequest);
|
CopyPartResult copyPartResult = client.copyPart(copyRequest);
|
||||||
|
|
||||||
List<PartETag> partETags = new ArrayList<>();
|
|
||||||
partETags.add(copyPartResult.getPartETag());
|
|
||||||
CompleteMultipartUploadRequest completeRequest =
|
CompleteMultipartUploadRequest completeRequest =
|
||||||
new CompleteMultipartUploadRequest(
|
new CompleteMultipartUploadRequest(
|
||||||
containerName, targetBlobName,
|
containerName, targetBlobName, uploadId,
|
||||||
initResult.getUploadId(), partETags);
|
ImmutableList.of(copyPartResult.getPartETag()));
|
||||||
|
|
||||||
CompleteMultipartUploadResult completeUploadResponse =
|
CompleteMultipartUploadResult completeUploadResponse =
|
||||||
client.completeMultipartUpload(completeRequest);
|
client.completeMultipartUpload(completeRequest);
|
||||||
|
|
||||||
|
@ -326,39 +322,34 @@ public final class S3AwsSdkTest {
|
||||||
|
|
||||||
ByteSource byteSource1 = byteSource.slice(0, partSize);
|
ByteSource byteSource1 = byteSource.slice(0, partSize);
|
||||||
UploadPartRequest uploadRequest1 = new UploadPartRequest()
|
UploadPartRequest uploadRequest1 = new UploadPartRequest()
|
||||||
.withBucketName(containerName).withKey(key)
|
.withBucketName(containerName)
|
||||||
.withUploadId(uploadId).withPartNumber(1)
|
.withKey(key)
|
||||||
|
.withUploadId(uploadId)
|
||||||
|
.withPartNumber(1)
|
||||||
.withInputStream(byteSource1.openStream())
|
.withInputStream(byteSource1.openStream())
|
||||||
.withPartSize(byteSource1.size());
|
.withPartSize(byteSource1.size());
|
||||||
uploadRequest1.getRequestClientOptions().setReadLimit(
|
uploadRequest1.getRequestClientOptions().setReadLimit(
|
||||||
(int) byteSource1.size());
|
(int) byteSource1.size());
|
||||||
|
|
||||||
UploadPartResult uploadPartResult1 = client.uploadPart(uploadRequest1);
|
UploadPartResult uploadPartResult1 = client.uploadPart(uploadRequest1);
|
||||||
PartETag partETag1 = uploadPartResult1.getPartETag();
|
|
||||||
|
|
||||||
ByteSource byteSource2 = byteSource.slice(partSize, size - partSize);
|
ByteSource byteSource2 = byteSource.slice(partSize, size - partSize);
|
||||||
UploadPartRequest uploadRequest2 = new UploadPartRequest()
|
UploadPartRequest uploadRequest2 = new UploadPartRequest()
|
||||||
.withBucketName(containerName).withKey(key)
|
.withBucketName(containerName)
|
||||||
.withUploadId(uploadId).withPartNumber(2)
|
.withKey(key)
|
||||||
|
.withUploadId(uploadId)
|
||||||
|
.withPartNumber(2)
|
||||||
.withInputStream(byteSource2.openStream())
|
.withInputStream(byteSource2.openStream())
|
||||||
.withPartSize(byteSource2.size());
|
.withPartSize(byteSource2.size());
|
||||||
uploadRequest2.getRequestClientOptions().setReadLimit(
|
uploadRequest2.getRequestClientOptions().setReadLimit(
|
||||||
(int) byteSource2.size());
|
(int) byteSource2.size());
|
||||||
|
|
||||||
UploadPartResult uploadPartResult2 = client.uploadPart(uploadRequest2);
|
UploadPartResult uploadPartResult2 = client.uploadPart(uploadRequest2);
|
||||||
PartETag partETag2 = uploadPartResult2.getPartETag();
|
|
||||||
|
|
||||||
// must be mutable since AWK SDK sorts parts
|
CompleteMultipartUploadRequest completeRequest =
|
||||||
List<PartETag> partETagList = new ArrayList<PartETag>();
|
new CompleteMultipartUploadRequest(
|
||||||
partETagList.add(partETag1);
|
containerName, key, uploadId,
|
||||||
partETagList.add(partETag2);
|
ImmutableList.of(
|
||||||
|
uploadPartResult1.getPartETag(),
|
||||||
CompleteMultipartUploadRequest completeRequest = new
|
uploadPartResult2.getPartETag()));
|
||||||
CompleteMultipartUploadRequest(
|
|
||||||
containerName,
|
|
||||||
key,
|
|
||||||
uploadId,
|
|
||||||
partETagList);
|
|
||||||
client.completeMultipartUpload(completeRequest);
|
client.completeMultipartUpload(completeRequest);
|
||||||
|
|
||||||
S3Object object = client.getObject(new GetObjectRequest(containerName,
|
S3Object object = client.getObject(new GetObjectRequest(containerName,
|
||||||
|
|
Ładowanie…
Reference in New Issue