[ 
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)

Reply via email to