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 2015/12/14 07:44:07 UTC
[1/2] jclouds git commit: Fix Azure setBlobProperties
Repository: jclouds
Updated Branches:
refs/heads/master 0634da98a -> b64d05abb
Fix Azure setBlobProperties
Also backfill test.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/85bc4a6b
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/85bc4a6b
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/85bc4a6b
Branch: refs/heads/master
Commit: 85bc4a6b7e20057821c42fc6d49c0724cd414fcf
Parents: 0634da9
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Dec 13 22:07:04 2015 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Dec 13 22:24:53 2015 -0800
----------------------------------------------------------------------
.../storage/reference/AzureStorageHeaders.java | 5 +++
.../org/jclouds/azureblob/AzureBlobClient.java | 2 +-
.../BindAzureContentMetadataToRequest.java | 23 +++++++++----
.../azureblob/AzureBlobClientLiveTest.java | 34 ++++++++++++++++++++
4 files changed, 57 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/85bc4a6b/providers/azureblob/src/main/java/org/jclouds/azure/storage/reference/AzureStorageHeaders.java
----------------------------------------------------------------------
diff --git a/providers/azureblob/src/main/java/org/jclouds/azure/storage/reference/AzureStorageHeaders.java b/providers/azureblob/src/main/java/org/jclouds/azure/storage/reference/AzureStorageHeaders.java
index b57caa9..9521e37 100644
--- a/providers/azureblob/src/main/java/org/jclouds/azure/storage/reference/AzureStorageHeaders.java
+++ b/providers/azureblob/src/main/java/org/jclouds/azure/storage/reference/AzureStorageHeaders.java
@@ -23,6 +23,11 @@ package org.jclouds.azure.storage.reference;
*/
public final class AzureStorageHeaders {
+ public static final String CONTENT_DISPOSITION = "x-ms-blob-content-disposition";
+ public static final String CONTENT_ENCODING = "x-ms-blob-content-encoding";
+ public static final String CONTENT_LANGUAGE = "x-ms-blob-content-language";
+ public static final String CONTENT_TYPE = "x-ms-blob-content-type";
+
public static final String USER_METADATA_PREFIX = "x-ms-meta-";
public static final String COPY_SOURCE = "x-ms-copy-source";
http://git-wip-us.apache.org/repos/asf/jclouds/blob/85bc4a6b/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobClient.java
----------------------------------------------------------------------
diff --git a/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobClient.java b/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobClient.java
index b8a25e5..b2fa4f5 100644
--- a/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobClient.java
+++ b/providers/azureblob/src/main/java/org/jclouds/azureblob/AzureBlobClient.java
@@ -418,7 +418,7 @@ public interface AzureBlobClient extends Closeable {
@Named("SetBlobProperties")
@PUT
@Path("{container}/{name}")
- @QueryParams(keys = { "comp" }, values = { "metadata" })
+ @QueryParams(keys = { "comp" }, values = { "properties" })
@ResponseParser(ParseETagHeader.class)
String setBlobProperties(
@PathParam("container") @ParamValidators(ContainerNameValidator.class) String container,
http://git-wip-us.apache.org/repos/asf/jclouds/blob/85bc4a6b/providers/azureblob/src/main/java/org/jclouds/azureblob/binders/BindAzureContentMetadataToRequest.java
----------------------------------------------------------------------
diff --git a/providers/azureblob/src/main/java/org/jclouds/azureblob/binders/BindAzureContentMetadataToRequest.java b/providers/azureblob/src/main/java/org/jclouds/azureblob/binders/BindAzureContentMetadataToRequest.java
index 2bf496d..6568e4d 100644
--- a/providers/azureblob/src/main/java/org/jclouds/azureblob/binders/BindAzureContentMetadataToRequest.java
+++ b/providers/azureblob/src/main/java/org/jclouds/azureblob/binders/BindAzureContentMetadataToRequest.java
@@ -21,6 +21,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import javax.inject.Singleton;
+import org.jclouds.azure.storage.reference.AzureStorageHeaders;
import org.jclouds.http.HttpRequest;
import org.jclouds.io.ContentMetadata;
import org.jclouds.rest.Binder;
@@ -44,14 +45,24 @@ public class BindAzureContentMetadataToRequest implements Binder {
ImmutableMap.Builder<String, String> headers = ImmutableMap.builder();
- String contentType = contentMetadata.getContentType();
- if (contentType != null) {
- headers.put("x-ms-blob-type", contentType);
- }
-
String contentDisposition = contentMetadata.getContentDisposition();
if (contentDisposition != null) {
- headers.put("x-ms-blob-content-disposition", contentDisposition);
+ headers.put(AzureStorageHeaders.CONTENT_DISPOSITION, contentDisposition);
+ }
+
+ String contentEncoding = contentMetadata.getContentEncoding();
+ if (contentEncoding != null) {
+ headers.put(AzureStorageHeaders.CONTENT_ENCODING, contentEncoding);
+ }
+
+ String contentLanguage = contentMetadata.getContentLanguage();
+ if (contentLanguage != null) {
+ headers.put(AzureStorageHeaders.CONTENT_LANGUAGE, contentLanguage);
+ }
+
+ String contentType = contentMetadata.getContentType();
+ if (contentType != null) {
+ headers.put(AzureStorageHeaders.CONTENT_TYPE, contentType);
}
return (R) request.toBuilder().replaceHeaders(Multimaps.forMap(headers.build())).build();
http://git-wip-us.apache.org/repos/asf/jclouds/blob/85bc4a6b/providers/azureblob/src/test/java/org/jclouds/azureblob/AzureBlobClientLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/azureblob/src/test/java/org/jclouds/azureblob/AzureBlobClientLiveTest.java b/providers/azureblob/src/test/java/org/jclouds/azureblob/AzureBlobClientLiveTest.java
index db3ef9d..7bc7236 100644
--- a/providers/azureblob/src/test/java/org/jclouds/azureblob/AzureBlobClientLiveTest.java
+++ b/providers/azureblob/src/test/java/org/jclouds/azureblob/AzureBlobClientLiveTest.java
@@ -50,6 +50,8 @@ import org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest;
import org.jclouds.http.HttpResponseException;
import org.jclouds.http.options.GetOptions;
import org.jclouds.io.ByteStreams2;
+import org.jclouds.io.ContentMetadata;
+import org.jclouds.io.ContentMetadataBuilder;
import org.jclouds.io.Payloads;
import org.jclouds.util.Strings2;
import org.jclouds.util.Throwables2;
@@ -544,4 +546,36 @@ public class AzureBlobClientLiveTest extends BaseBlobStoreIntegrationTest {
AzureBlob getBlob = getApi().getBlob(privateContainer, "to-if-none-match");
assertEquals(ByteStreams2.toByteArrayAndClose(getBlob.getPayload().openStream()), byteSource.read());
}
+
+ @Test
+ public void testSetBlobProperties() throws Exception {
+ String blobName = "blob-name";
+ ByteSource byteSource = TestUtils.randomByteSource().slice(0, 1024);
+ String contentDisposition = "attachment; filename=photo.jpg";
+ String contentEncoding = "compress";
+ String contentLanguage = "en";
+ String contentType = "audio/ogg";
+
+ // create blob
+ AzureBlob object = getApi().newBlob();
+ object.getProperties().setName(blobName);
+ object.setPayload(byteSource.read());
+ getApi().putBlob(privateContainer, object);
+
+ // set properties
+ getApi().setBlobProperties(privateContainer, blobName, ContentMetadataBuilder.create()
+ .contentDisposition(contentDisposition)
+ .contentEncoding(contentEncoding)
+ .contentLanguage(contentLanguage)
+ .contentType(contentType)
+ .build());
+
+ // get properties
+ BlobProperties properties = getApi().getBlobProperties(privateContainer, blobName);
+ ContentMetadata contentMetadata = properties.getContentMetadata();
+ assertThat(contentMetadata.getContentDisposition()).isEqualTo(contentDisposition);
+ assertThat(contentMetadata.getContentEncoding()).isEqualTo(contentEncoding);
+ assertThat(contentMetadata.getContentLanguage()).isEqualTo(contentLanguage);
+ assertThat(contentMetadata.getContentType()).isEqualTo(contentType);
+ }
}
[2/2] jclouds git commit: Allow setting content metadata during
copyBlob
Posted by ga...@apache.org.
Allow setting content metadata during copyBlob
Also remove unneeded call to setBlobMetadata which copy sets.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/b64d05ab
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/b64d05ab
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/b64d05ab
Branch: refs/heads/master
Commit: b64d05abb9f04bad28b9f08382f6d52c8ecd6fb3
Parents: 85bc4a6
Author: Andrew Gaul <ga...@apache.org>
Authored: Sun Dec 13 22:28:01 2015 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Dec 13 22:33:08 2015 -0800
----------------------------------------------------------------------
.../azureblob/blobstore/AzureBlobStore.java | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/b64d05ab/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/AzureBlobStore.java
----------------------------------------------------------------------
diff --git a/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/AzureBlobStore.java b/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/AzureBlobStore.java
index 45d3e7c..4702a05 100644
--- a/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/AzureBlobStore.java
+++ b/providers/azureblob/src/main/java/org/jclouds/azureblob/blobstore/AzureBlobStore.java
@@ -242,15 +242,25 @@ public class AzureBlobStore extends BaseBlobStore {
URI source = context.getSigner().signGetBlob(fromContainer, fromName).getEndpoint();
String eTag = sync.copyBlob(source, toContainer, toName, azureOptions.build());
- ContentMetadataBuilder builder = ContentMetadataBuilder.create();
-
Optional<ContentMetadata> contentMetadata = options.getContentMetadata();
if (contentMetadata.isPresent()) {
+ ContentMetadataBuilder builder = ContentMetadataBuilder.create();
+
String contentDisposition = contentMetadata.get().getContentDisposition();
if (contentDisposition != null) {
builder.contentDisposition(contentDisposition);
}
+ String contentEncoding = contentMetadata.get().getContentEncoding();
+ if (contentEncoding != null) {
+ builder.contentEncoding(contentEncoding);
+ }
+
+ String contentLanguage = contentMetadata.get().getContentLanguage();
+ if (contentLanguage != null) {
+ builder.contentLanguage(contentLanguage);
+ }
+
String contentType = contentMetadata.get().getContentType();
if (contentType != null) {
builder.contentType(contentType);
@@ -259,10 +269,6 @@ public class AzureBlobStore extends BaseBlobStore {
eTag = sync.setBlobProperties(toContainer, toName, builder.build());
}
- if (userMetadata.isPresent()) {
- eTag = sync.setBlobMetadata(toContainer, toName, userMetadata.get());
- }
-
return eTag;
}