You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2017/11/23 08:17:42 UTC

jclouds git commit: JCLOUDS-1337: revert legacy aws-s3 storage class

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 <ga...@apache.org>
Authored: Wed Nov 22 17:50:18 2017 -0800
Committer: Andrew Gaul <ga...@apache.org>
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)) &&