[ 
https://issues.apache.org/jira/browse/HDDS-739?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elek, Marton updated HDDS-739:
------------------------------
    Attachment: HDDS-739.001.patch

> Support MultiDeleteRequest without XML namespace
> ------------------------------------------------
>
>                 Key: HDDS-739
>                 URL: https://issues.apache.org/jira/browse/HDDS-739
>             Project: Hadoop Distributed Data Store
>          Issue Type: Sub-task
>          Components: S3
>            Reporter: Elek, Marton
>            Assignee: Elek, Marton
>            Priority: Major
>         Attachments: HDDS-739.001.patch
>
>
> When I run the IContract* unit tests from s3a adapter to test our s3 gateway 
> I found that some of the unit tests (such as 
> {color:#000000}ITestS3AContractGetFileStatus{color}.testListStatusEmptyDirectory)
>  fails with org.apache.hadoop.fs.s3a.AWSBadRequestException.
> Checking the request/response I found that the multi delete request (POST to 
> the bucket address with ending with ?delete) fails with HTTP 400 and without 
> any error in the logs.
> The multi delete endpoint was tested with the robot tests and it worked well 
> with aws s3 cli:
> {code:java}
> aws s3api --endpoint http://localhost:9878 delete-objects --bucket buckettest 
> --delete 
> 'Objects=[{Key=multidelete/f1},{Key=multidelete/f2},{Key=multidelete/f4}]'{code}
> After some more investigation I found that the XML namespace was missing from 
> the request:
> The request was something like this:
> {code:java}
> <Delete><Object><Key>multidelete/f1</Key></Object><Object><Key>multidelete/f2</Key></Object><Object><Key>multidelete/f4</Key></Object></Delete>{code}
> Instead of this:
> {code:java}
> <Delete 
> xmlns="http://s3.amazonaws.com/doc/2006-03-01/";><Object><Key>multidelete/f1</Key></Object><Object><Key>multidelete/f2</Key></Object><Object><Key>multidelete/f4</Key></Object></Delete>{code}
> I believe the right approach is to add the namespace to request as it's 
> documented by the AWS documentation but it seems s3a adapter doesn't do it 
> and s3 accepts it.
> We need a custom jaxb unmarshaller logic for the multi delete requests to 
> accept requests both with and without namespaces.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to