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 2013/07/10 06:55:36 UTC
git commit: Add Swift-specific MD5 checksum header
Updated Branches:
refs/heads/master da211e257 -> c299b8ff6
Add Swift-specific MD5 checksum header
Tested against cloudfiles-us, hpcloud-objectstorage, and
swift-keystone. Reference for ETag:
https://answers.launchpad.net/swift/+question/157064
Project: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/commit/c299b8ff
Tree: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/tree/c299b8ff
Diff: http://git-wip-us.apache.org/repos/asf/incubator-jclouds/diff/c299b8ff
Branch: refs/heads/master
Commit: c299b8ff61421a19479410c9c4d6253bae3405e5
Parents: da211e2
Author: Andrew Gaul <ga...@apache.org>
Authored: Thu Jun 20 19:45:45 2013 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Tue Jul 9 21:35:17 2013 -0700
----------------------------------------------------------------------
.../blobstore/CloudFilesBlobSignerExpectTest.java | 1 +
.../binders/BindSwiftObjectMetadataToRequest.java | 14 ++++++++++++++
.../swift/blobstore/SwiftBlobSignerExpectTest.java | 1 +
.../blobstore/SwiftKeystoneBlobSignerExpectTest.java | 1 +
.../HPCloudObjectStorageBlobSignerExpectTest.java | 1 +
5 files changed, 18 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c299b8ff/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
index 08ba1b7..9659ec3 100644
--- a/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
+++ b/apis/cloudfiles/src/test/java/org/jclouds/cloudfiles/blobstore/CloudFilesBlobSignerExpectTest.java
@@ -78,6 +78,7 @@ public class CloudFilesBlobSignerExpectTest extends BaseBlobSignerExpectTest {
protected HttpRequest putBlob() {
return HttpRequest.builder().method("PUT")
.endpoint("https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_83a9d536-2e25-4166-bd3b-a503a934f953/container/name")
+ .addHeader("ETag", "00020408")
.addHeader("Expect", "100-continue")
.addHeader("X-Auth-Token", authToken).build();
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c299b8ff/apis/swift/src/main/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequest.java
----------------------------------------------------------------------
diff --git a/apis/swift/src/main/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequest.java b/apis/swift/src/main/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequest.java
index 62f07b3..e4eb4c1 100644
--- a/apis/swift/src/main/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequest.java
+++ b/apis/swift/src/main/java/org/jclouds/openstack/swift/binders/BindSwiftObjectMetadataToRequest.java
@@ -23,6 +23,9 @@ import javax.inject.Inject;
import javax.inject.Singleton;
import javax.ws.rs.core.MediaType;
+import com.google.common.io.BaseEncoding;
+import com.google.common.net.HttpHeaders;
+
import org.jclouds.blobstore.binders.BindUserMetadataToHeadersWithPrefix;
import org.jclouds.http.HttpRequest;
import org.jclouds.openstack.swift.blobstore.functions.ObjectToBlob;
@@ -59,6 +62,17 @@ public class BindSwiftObjectMetadataToRequest implements Binder {
// Enable "chunked"/"streamed" data, where the size needn't be known in advance.
request = (R) request.toBuilder().replaceHeader("Transfer-Encoding", "chunked").build();
}
+
+ byte[] contentMD5 = object.getInfo().getHash();
+ if (contentMD5 != null) {
+ // Swizzle hash to ETag
+ object.getInfo().setHash(null);
+ request = (R) request.toBuilder()
+ .addHeader(HttpHeaders.ETAG,
+ BaseEncoding.base16().lowerCase().encode(contentMD5))
+ .build();
+ }
+
request = mdBinder.bindToRequest(request, object2Blob.apply(object));
return request;
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c299b8ff/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
index 90220b9..b2be6eb 100644
--- a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
+++ b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftBlobSignerExpectTest.java
@@ -76,6 +76,7 @@ public class SwiftBlobSignerExpectTest extends BaseBlobSignerExpectTest {
protected HttpRequest putBlob() {
return HttpRequest.builder().method("PUT")
.endpoint("http://storage/container/name")
+ .addHeader("ETag", "00020408")
.addHeader("Expect", "100-continue")
.addHeader("X-Auth-Token", "testtoken").build();
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c299b8ff/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
index 791d512..01c21a7 100644
--- a/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
+++ b/apis/swift/src/test/java/org/jclouds/openstack/swift/blobstore/SwiftKeystoneBlobSignerExpectTest.java
@@ -71,6 +71,7 @@ public class SwiftKeystoneBlobSignerExpectTest extends BaseBlobSignerExpectTest
protected HttpRequest putBlob() {
return HttpRequest.builder().method("PUT")
.endpoint("https://objects.jclouds.org/v1.0/40806637803162/container/name")
+ .addHeader("ETag", "00020408")
.addHeader("Expect", "100-continue")
.addHeader("X-Auth-Token", "Auth_4f173437e4b013bee56d1007").build();
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/c299b8ff/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
----------------------------------------------------------------------
diff --git a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
index 3bcc5cc..1da4b72 100644
--- a/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
+++ b/providers/hpcloud-objectstorage/src/test/java/org/jclouds/hpcloud/objectstorage/blobstore/HPCloudObjectStorageBlobSignerExpectTest.java
@@ -74,6 +74,7 @@ public class HPCloudObjectStorageBlobSignerExpectTest extends BaseBlobSignerExpe
protected HttpRequest putBlob() {
return HttpRequest.builder().method("PUT")
.endpoint("https://objects.jclouds.org/v1.0/40806637803162/container/name")
+ .addHeader("ETag", "00020408")
.addHeader("Expect", "100-continue")
.addHeader("X-Auth-Token", "Auth_4f173437e4b013bee56d1007").build();
}