Aws-cli: s3api put-object --tagging option is not working

Created on 18 Sep 2017  路  4Comments  路  Source: aws/aws-cli

There is a --tagging option for s3api put-object command (like explained in this documentation http://docs.aws.amazon.com/cli/latest/reference/s3api/put-object.html), but it seems not working and throw the following errors:

aws s3api put-object [...] --tagging 'TagSet%3D%5B%7BKey%3Dstring%2CValue%3Dstring%7D%5D'
An error occurred (InvalidTag) when calling the PutObject operation: The TagKey you have provided is invalid

or:

aws s3api put-object [...] --tagging 'TagSet=[{Key=string,Value=string}]'
An error occurred (InvalidArgument) when calling the PutObject operation: The header 'x-amz-tagging' shall be encoded as UTF-8 then URLEncoded URL query parameters without tag name duplicates

I'm using an AWS key with AdministratorAccess on target bucket.

aws --version
aws-cli/1.11.154 Python/2.7.13 Linux/4.12.11-300.fc26.x86_64 botocore/1.7.12

Any idea ? Many thanks !

guidance

Most helpful comment

@dstufft Any ideas when you want to give multiple tags? 'testing=Moo,testing2=Baa' does not seem to work

EDIT... 'testing=Moo&testing2=Baa' works

All 4 comments

You want to use 'testing=Moo' as the value of --tagging. It is encoding the key values as a query string.

That's not true. This worked for me: aws s3api put-object-tagging --bucket my_bucket --key my.file --tagging 'TagSet=[{Key=mykey,Value=myvalue},{Key=yourkey,Value=yourvalue}]'

@rtvlad You've quoted put-object-tagging rather than put-object. The commands seem to have different behaviour

@dstufft Any ideas when you want to give multiple tags? 'testing=Moo,testing2=Baa' does not seem to work

EDIT... 'testing=Moo&testing2=Baa' works

Was this page helpful?
1 / 5 - 1 ratings

Related issues

ypant picture ypant  路  3Comments

pawelkilian picture pawelkilian  路  3Comments

matt-sexton picture matt-sexton  路  3Comments

DrStrangepork picture DrStrangepork  路  3Comments

alexejk picture alexejk  路  3Comments