diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java index 532a8de94a..a5f133820a 100644 --- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java +++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java @@ -66,7 +66,6 @@ import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate; import org.jclouds.googlecloudstorage.domain.templates.ComposeObjectTemplate; import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate; import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate; -import org.jclouds.googlecloudstorage.options.InsertObjectOptions; import org.jclouds.googlecloudstorage.options.ListObjectOptions; import org.jclouds.http.HttpResponseException; import org.jclouds.io.ContentMetadata; @@ -392,6 +391,8 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore { } ObjectTemplate destination = blobMetadataToObjectTemplate.apply(mpu.blobMetadata()); + // unset storage class because the subobjects store this state + destination.storageClass(DomainResourceReferences.StorageClass.STANDARD); if (mpu.putOptions().getBlobAccess() == BlobAccess.PUBLIC_READ) { ObjectAccessControls controls = ObjectAccessControls.builder() .entity("allUsers") @@ -421,10 +422,11 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore { public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { String partName = getMPUPartName(mpu, partNumber); long partSize = payload.getContentMetadata().getContentLength(); - // TODO: JCLOUDS-1337: use multipartUpload to set storage class - InsertObjectOptions insertOptions = new InsertObjectOptions().name(partName); - GoogleCloudStorageObject object = api.getObjectApi().simpleUpload(mpu.containerName(), - mpu.blobMetadata().getContentMetadata().getContentType(), partSize, payload, insertOptions); + ObjectTemplate template = blobMetadataToObjectTemplate.apply(mpu.blobMetadata()) + .name(partName) + .size(partSize); + GoogleCloudStorageObject object = api.getObjectApi().multipartUpload( + mpu.containerName(), template, payload); return MultipartPart.create(partNumber, partSize, object.etag(), object.updated()); } diff --git a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobMetadataToObjectTemplate.java b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobMetadataToObjectTemplate.java index e40ce49c70..2f40be3873 100644 --- a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobMetadataToObjectTemplate.java +++ b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/functions/BlobMetadataToObjectTemplate.java @@ -21,6 +21,7 @@ import static com.google.common.io.BaseEncoding.base64; import java.util.Map; import org.jclouds.blobstore.domain.BlobMetadata; +import org.jclouds.googlecloudstorage.domain.DomainResourceReferences.StorageClass; import org.jclouds.googlecloudstorage.domain.templates.ObjectTemplate; import org.jclouds.io.ContentMetadata; @@ -47,7 +48,8 @@ public class BlobMetadataToObjectTemplate implements Function