Skip to content

Conversation

@diwu1989
Copy link
Contributor

AWS S3 allows max metadata size of 2KB. It's computed as the sum of the key and value.

Swift by default constrains the metadata value size to 256bytes, which is too low and not really compatible with what S3 provides.

AWS S3 allows max metadata size of 2KB. It's computed as the sum of the key and value.
Swift by default constrains the metadata value size to 256bytes, which is too low and not really compatible with what S3 provides.
swift_hash_path_suffix = 0rBOk3EM17yId7Ke

[swift-constraints]
max_meta_value_length = 2048
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the goal is to make Swift constraints match S3, there are a few more relevant settings: https://github.com/openstack/swift/blob/master/swift/common/constraints.py

Specifically, I think you want to set max_meta_overall_size to 2048 and max_meta_header_size to 2048. It looks like S3 doesn't have a hard constraint on the length of the metadata key either (at least I can't find it here: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html#object-metadata), so maybe max_meta_name_length should also be 2048. Can you validate the various lengths against AWS S3? I'm also unclear if there is a maximum number of x-amz-meta- headers allowed (which Swift currently sets to 90).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants