Repository: jclouds Updated Branches: refs/heads/master a540daf3d -> 8ec3c520c
JCLOUDS-1337: revert legacy aws-s3 storage class This functionality was deprecated in 2.1.x and we will remove it in 2.2.x. Partially reverts 89053d9a8b43ccc54c99e552eb5a868b236d1057. Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/8ec3c520 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/8ec3c520 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/8ec3c520 Branch: refs/heads/master Commit: 8ec3c520ce52350a073520c674aba0d272134352 Parents: a540daf Author: Andrew Gaul <[email protected]> Authored: Wed Nov 22 17:50:18 2017 -0800 Committer: Andrew Gaul <[email protected]> Committed: Wed Nov 22 18:08:41 2017 -0800 ---------------------------------------------------------------------- .../aws/s3/blobstore/AWSS3BlobStore.java | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/8ec3c520/providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/AWSS3BlobStore.java ---------------------------------------------------------------------- diff --git a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/AWSS3BlobStore.java b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/AWSS3BlobStore.java index 90ba59d..3d9f17a 100644 --- a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/AWSS3BlobStore.java +++ b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/blobstore/AWSS3BlobStore.java @@ -16,6 +16,8 @@ */ package org.jclouds.aws.s3.blobstore; +import static org.jclouds.s3.domain.ObjectMetadata.StorageClass.REDUCED_REDUNDANCY; + import java.util.Set; import javax.inject.Inject; @@ -23,11 +25,15 @@ import javax.inject.Provider; import org.jclouds.aws.domain.Region; import org.jclouds.aws.s3.AWSS3Client; +import org.jclouds.aws.s3.blobstore.options.AWSS3PutObjectOptions; +import org.jclouds.aws.s3.blobstore.options.AWSS3PutOptions; import org.jclouds.blobstore.BlobStoreContext; +import org.jclouds.blobstore.domain.Blob; import org.jclouds.blobstore.domain.PageSet; import org.jclouds.blobstore.domain.StorageMetadata; import org.jclouds.blobstore.functions.BlobToHttpGetOptions; import org.jclouds.blobstore.options.CreateContainerOptions; +import org.jclouds.blobstore.options.PutOptions; import org.jclouds.blobstore.strategy.internal.FetchBlobMetadata; import org.jclouds.blobstore.util.BlobUtils; import org.jclouds.collect.Memoized; @@ -41,6 +47,7 @@ import org.jclouds.s3.blobstore.functions.ContainerToBucketListOptions; import org.jclouds.s3.blobstore.functions.ObjectToBlob; import org.jclouds.s3.blobstore.functions.ObjectToBlobMetadata; import org.jclouds.s3.domain.BucketMetadata; +import org.jclouds.s3.domain.ObjectMetadata; import com.google.common.base.Function; import com.google.common.base.Supplier; @@ -67,6 +74,25 @@ public class AWSS3BlobStore extends S3BlobStore { } @Override + public String putBlob(String container, Blob blob, PutOptions options) { + if (options.isMultipart()) { + return putMultipartBlob(container, blob, options); + } else if ((options instanceof AWSS3PutOptions) && + (((AWSS3PutOptions) options).getStorageClass() == REDUCED_REDUNDANCY)) { + return putBlobWithReducedRedundancy(container, blob); + + } else { + return super.putBlob(container, blob, options); + } + } + + private String putBlobWithReducedRedundancy(String container, Blob blob) { + AWSS3PutObjectOptions options = new AWSS3PutObjectOptions(); + options.storageClass(ObjectMetadata.StorageClass.REDUCED_REDUNDANCY); + return getContext().unwrapApi(AWSS3Client.class).putObject(container, blob2Object.apply(blob), options); + } + + @Override public boolean createContainerInLocation(Location location, String container, CreateContainerOptions options) { if ((location == null || location.getId().equals(Region.US_STANDARD)) &&
