[
https://issues.apache.org/jira/browse/HADOOP-11687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14991941#comment-14991941
]
Aaron Peterson commented on HADOOP-11687:
-----------------------------------------
Implementing a different cloning method seems to alleviate the COPY issue:
1092c1092
< final ObjectMetadata dstom = srcom.clone();
---
> ObjectMetadata dstom = copyOfObjMetadata(srcom);
1197a1198,1224
> // Constructs copy of object metadata
> private ObjectMetadata copyOfObjMetadata(ObjectMetadata source) {
> ObjectMetadata ret = new ObjectMetadata();
> ret.setCacheControl(source.getCacheControl());
> ret.setContentDisposition(source.getContentDisposition());
> ret.setContentEncoding(source.getContentEncoding());
> ret.setContentLength(source.getContentLength());
> ret.setContentMD5(source.getContentMD5());
> ret.setContentType(source.getContentType());
> ret.setExpirationTime(source.getExpirationTime());
> ret.setExpirationTimeRuleId(source.getExpirationTimeRuleId());
> ret.setHttpExpiresDate(source.getHttpExpiresDate());
> ret.setLastModified(source.getLastModified());
> ret.setOngoingRestore(source.getOngoingRestore());
> ret.setRestoreExpirationTime(source.getRestoreExpirationTime());
> ret.setSSEAlgorithm(source.getSSEAlgorithm());
> ret.setSSECustomerAlgorithm(source.getSSECustomerAlgorithm());
> ret.setSSECustomerKeyMd5(source.getSSECustomerKeyMd5());
> if (source.getUserMetadata().isEmpty() != Boolean.TRUE) {
> java.util.Map<String, String> smd = source.getUserMetadata();
> for (String key : smd.keySet()) {
> ret.addUserMetadata(key, smd.get(key));
> }
> }
> return ret;
> }
>
> Ignore x-emc-* headers when copying an Amazon S3 object
> -------------------------------------------------------
>
> Key: HADOOP-11687
> URL: https://issues.apache.org/jira/browse/HADOOP-11687
> Project: Hadoop Common
> Issue Type: Improvement
> Components: fs/s3
> Affects Versions: 2.7.0
> Reporter: Denis Jannot
>
> The EMC ViPR/ECS object storage platform uses proprietary headers starting by
> x-emc-* (like Amazon does with x-amz-*).
> Headers starting by x-emc-* should be included in the signature computation,
> but it's not done by the Amazon S3 Java SDK (it's done by the EMC S3 SDK).
> When s3a copy an object it copies all the headers, but when the object
> includes x-emc-* headers, it generates a signature mismatch.
> Removing the x-emc-* headers from the copy would allow s3a to be compatible
> with the EMC ViPR/ECS object storage platform.
> Removing the x-* which aren't x-amz-* headers from the copy would allow s3a
> to be compatible with any object storage platform which is using proprietary
> headers
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)