Fix s3 url regex to ensure path-based bucket and key does not catch.

This commit is contained in:
Steve Pulec 2016-01-24 16:33:36 -05:00
parent f35986b3fc
commit a7938ed9ec

View File

@ -1,6 +1,5 @@
from __future__ import unicode_literals
from moto.compat import OrderedDict
from .responses import S3ResponseInstance
url_bases = [
@ -8,13 +7,13 @@ url_bases = [
"https?://(?P<bucket_name>[a-zA-Z0-9\-_.]*)\.?s3(.*).amazonaws.com"
]
url_paths = OrderedDict([
url_paths = {
# subdomain bucket
('{0}/$', S3ResponseInstance.bucket_response),
'{0}/$': S3ResponseInstance.bucket_response,
# subdomain key of path-based bucket
('{0}/(?P<key_or_bucket_name>.+)', S3ResponseInstance.ambiguous_response),
'{0}/(?P<key_or_bucket_name>[^/]+)/?$': S3ResponseInstance.ambiguous_response,
# path-based bucket + key
('{0}/(?P<bucket_name_path>[a-zA-Z0-9\-_./]+)/(?P<key_name>.+)', S3ResponseInstance.key_response),
])
'{0}/(?P<bucket_name_path>[a-zA-Z0-9\-_./]+)/(?P<key_name>.+)': S3ResponseInstance.key_response,
}