[ceph-users] RGW Swift metadata dropped when S3 bucket versioning enabled

Florian Haas florian at citynetwork.eu
Wed Nov 28 08:58:39 PST 2018


On 27/11/2018 20:28, Maxime Guyot wrote:
> Hi,
> 
> I'm running into an issue with the RadosGW Swift API when the S3 bucket
> versioning is enabled. It looks like it silently drops any metadata sent
> with the "X-Object-Meta-foo" header (see example below).
> This is observed on a Luminous 12.2.8 cluster. Is that a normal thing?
> Am I misconfiguring something here?
> 
> 
> With S3 bucket versioning OFF:
> $ openstack object set --property foo=bar test test.dat
> $ os object show test test.dat
> +----------------+----------------------------------+
> | Field          | Value                            |
> +----------------+----------------------------------+
> | account        | v1                               |
> | container      | test                             |
> | content-length | 507904                           |
> | content-type   | binary/octet-stream              |
> | etag           | 03e8a398f343ade4e1e1d7c81a66e400 |
> | last-modified  | Tue, 27 Nov 2018 13:53:54 GMT    |
> | object         | test.dat                         |
> | properties     | Foo='bar'                        |  <= Metadata is here
> +----------------+----------------------------------+
> 
> With S3 bucket versioning ON:

Can you elaborate on what exactly you're doing here to enable S3 bucket
versioning? Do I assume correctly that you are creating the "test"
container using the swift or openstack client, then sending a
VersioningConfiguration request against the "test" bucket, as explained
in
https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#how-to-enable-disable-versioning-intro?

> $ openstack object set --property foo=bar test test2.dat
> $ openstack object show test test2.dat
> +----------------+----------------------------------+
> | Field          | Value                            |
> +----------------+----------------------------------+
> | account        | v1                               |
> | container      | test                             |
> | content-length | 507904                           |
> | content-type   | binary/octet-stream              |
> | etag           | 03e8a398f343ade4e1e1d7c81a66e400 |
> | last-modified  | Tue, 27 Nov 2018 13:56:50 GMT    |
> | object         | test2.dat                        | <= Metadata is absent
> +----------------+----------------------------------+

Semi-related: I've seen some interesting things when mucking around with
a single container/bucket while switching APIs, when it comes to
container properties and metadata. For example, if you set a public read
ACL on an S3 bucket, the the corresponding Swift container is also
publicly readable but its read ACL looks empty (i.e. private) when you
ask via the Swift API.

Cheers,
Florian


More information about the ceph-users mailing list