S3 API Encoding issue with ceph radosgw
Issue
- When using the encoding-type parameter to list buckets the url keys are not encoded properly. certain characters do no appear to be encoded.
In the example below the + signs should appear as %2B. The url string was executed against our Ceph Radosgw and against AWS S3.
The difference was that the ++ signs in the key were encoded the AWS return and not in the Ceph return.
Command:
$curl http://testurl/encode-test?encoding-type=url
Return:
<?xml version="1.0" encoding="UTF-8"?><ListBucketResult xmlns="http:/testurl//doc/2006-03-01/"><Name>encode-test</Name><Prefix></Prefix><Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated><Contents><Key>ImageMagick-c++-6.7.8.9-10.el7.i686.rpm</Key><LastModified>2015-05-11T13:48:13.000Z</LastModified><ETag>"test;</ETag><Size>test</Size><StorageClass>STANDARD</StorageClass><Owner><ID>sync_ziggurat</ID><DisplayName>sync_ziggurat</DisplayName></Owner></Contents></ListBucketResult>
Environment
- Red Hat Ceph Storage 1.2.3
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.