Repository: jclouds Updated Branches: refs/heads/master 316bce058 -> f7b453413
JCLOUDS-1389: When composing, set destination.storageClass from object This aligns that the destination's storageClass with that of the sub-object(s) being composed Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/def6db48 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/def6db48 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/def6db48 Branch: refs/heads/master Commit: def6db48645fb6c043a4889b45c582335b331d30 Parents: 316bce0 Author: Jim Sermersheim <[email protected]> Authored: Fri Apr 20 12:04:16 2018 -0600 Committer: Jim Sermersheim <[email protected]> Committed: Fri Apr 20 12:05:58 2018 -0600 ---------------------------------------------------------------------- .../blobstore/GoogleCloudStorageBlobStore.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/def6db48/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java ---------------------------------------------------------------------- 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 63834e4..029ca03 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 @@ -379,15 +379,17 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore { @Override public String completeMultipartUpload(MultipartUpload mpu, List<MultipartPart> parts) { - ImmutableList.Builder<GoogleCloudStorageObject> objects = ImmutableList.builder(); + ImmutableList.Builder<GoogleCloudStorageObject> objectsBuilder = ImmutableList.builder(); for (MultipartPart part : parts) { - objects.add(api.getObjectApi().getObject(mpu.containerName(), + objectsBuilder.add(api.getObjectApi().getObject(mpu.containerName(), Strings2.urlEncode(getMPUPartName(mpu, part.partNumber())))); } ObjectTemplate destination = blobMetadataToObjectTemplate.apply(mpu.blobMetadata()); - // unset storage class because the subobjects store this state - destination.storageClass(DomainResourceReferences.StorageClass.STANDARD); + final ImmutableList<GoogleCloudStorageObject> objects = objectsBuilder.build(); + if (!objects.isEmpty()) { + destination.storageClass(objects.get(0).storageClass()); + } if (mpu.putOptions().getBlobAccess() == BlobAccess.PUBLIC_READ) { ObjectAccessControls controls = ObjectAccessControls.builder() .entity("allUsers") @@ -398,7 +400,7 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore { } ComposeObjectTemplate template = ComposeObjectTemplate.builder() - .fromGoogleCloudStorageObject(objects.build()) + .fromGoogleCloudStorageObject(objects) .destination(destination).build(); String eTag = api.getObjectApi().composeObjects(mpu.containerName(), Strings2.urlEncode(mpu.blobName()), template) .etag();
