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

Gargi Jaiswal updated HDDS-15259:
---------------------------------
    Summary: PutObject should support empty tag values for x-amz-tagging header 
 (was: PutObjectTagging should support empty tag values for x-amz-tagging 
header)

> PutObject should support empty tag values for x-amz-tagging header
> ------------------------------------------------------------------
>
>                 Key: HDDS-15259
>                 URL: https://issues.apache.org/jira/browse/HDDS-15259
>             Project: Apache Ozone
>          Issue Type: Sub-task
>            Reporter: Gargi Jaiswal
>            Assignee: Gargi Jaiswal
>            Priority: Major
>
> This JIRA addresses issues in the *object tagging* implementation:
> *Null Tag Value Support for x-amz-tagging-header:* The S3 Gateway validator 
> currently rejects x-amz-tagging on put object tags with a null value string 
> (e.g., {{{}Key=TagA, Value{}}}) with an {{InvalidTag}} error. AWS S3 permits 
> null tag value to be considered as empty string values. This causes 
> {color:#de350b}{{test_put_obj_with_tags}}{color} to fail.
> While a normal put-object-tagging is correctly rejecting null tag value.
> {code:java}
> // wrong behaviour
> // put object with x-amz-tagging header with null tag value should be treated 
> as an empty value.
> bash-5.1$ aws s3api put-object   --bucket buck1   --key key1  --tagging 
> 'tag1'   --endpoint-url  http://s3g:9878
> An error occurred (InvalidTag) when calling the PutObject operation: Some tag 
> values are not specified, please specify the tag values
> // no tags applied which is wrong
> bash-5.1$ aws s3api get-object-tagging   --bucket buck1   --key key1 
> --endpoint-url  http://s3g:9878
> {
>     "TagSet": []
> }{code}
> *Proposed Fix:* 
> Update *{{validateAndGetTagging()}}* in {{EndpointBase}} to allow values with 
> zero length when x-amz-tagging header is present else on normal put object 
> tagging this null tag value should fail, while maintaining the requirement 
> that the Key must have at least one character.
> After fix:
> {code:java}
> // put object with x-amz-tagging header succeded for null tag value
> bash-5.1$ aws s3api put-object   --bucket buck1   --key key1  --tagging 
> 'tag1'   --endpoint-url  http://s3g:9878
> {
>     "ETag": "\"d41d8cd98f00b204e9800998ecf8427e\""
> }
> // confirming with get object tagging
> bash-5.1$ aws s3api get-object-tagging   --bucket buck1   --key key1 
> --endpoint-url  http://s3g:9878
> {
>     "TagSet": [
>         {
>             "Key": "tag1",
>             "Value": ""
>         }
>     ]
> } {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to