Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Bucket name is always checked for lowercase when using create_bucket, regardless of calling format #1819

Open
joepie91 opened this Issue · 1 comment

2 participants

@joepie91

I've been attempting to use boto for the Internet Archive S3-like API, and used calling_format=OrdinaryCallingFormat() as a connection parameter (as advised) to be able to use mixed-case bucket names.

However, when using create_bucket, it still complains about my mixed-case bucket name.

The cause seems to be here, where check_lowercase_bucketname is called regardless of calling format: https://github.com/boto/boto/blob/develop/boto/s3/connection.py#L482

@achampion

Non-DNS compatible names are supported with path style bucket format in the US standard region (and numerous S3 compatible technologies), so creating uppercase bucket names with OrdinaryCallingFormat should be supported, even if not best practice (existing application with a specific naming policy and cannot use python:boto to create new content).
Getting buckets with uppercase names is already supported with OrdinaryCallingFormat. Perhaps push bucket name validation into the CallingFormat classes or separate into a selectable Class like the CallingFormat classes, with the default being DNS compatible.
The check_lowercase isn't really sufficient to check valid DNS compatible bucket names if that is the intent, beginning/ending with a period, double periods, underscores, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.