summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--swift/common/middleware/s3api/s3request.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/swift/common/middleware/s3api/s3request.py b/swift/common/middleware/s3api/s3request.py
index 28e734f0b..3d7d461e0 100644
--- a/swift/common/middleware/s3api/s3request.py
+++ b/swift/common/middleware/s3api/s3request.py
@@ -283,6 +283,12 @@ class SigV4Mixin(object):
if cred_param[key] != self.scope[key]:
kwargs = {}
if key == 'region':
+ # Allow lowercase region name
+ # for AWS .NET SDK compatibility
+ if not self.scope[key].islower() and \
+ cred_param[key] == self.scope[key].lower():
+ self.location = self.location.lower()
+ continue
kwargs = {'region': self.scope['region']}
raise AuthorizationQueryParametersError(
invalid_messages[key] % (cred_param[key], self.scope[key]),
@@ -325,6 +331,12 @@ class SigV4Mixin(object):
if cred_param[key] != self.scope[key]:
kwargs = {}
if key == 'region':
+ # Allow lowercase region name
+ # for AWS .NET SDK compatibility
+ if not self.scope[key].islower() and \
+ cred_param[key] == self.scope[key].lower():
+ self.location = self.location.lower()
+ continue
kwargs = {'region': self.scope['region']}
raise AuthorizationHeaderMalformed(
invalid_messages[key] % (cred_param[key], self.scope[key]),