swift/swift/common
arzhna 3a6e85d9ec s3api: Allow lower-cased region name for AWS .NET SDK compatibility
When I call the S3 API using the AWS .NET SDK, I get the following error.

An error occurred (AuthorizationHeaderMalformed) when calling the
ListBuckets operation: The authorization header is malformed;
the region 'regionone' is wrong; expecting 'RegionOne'

The reason is that the AWS .NET SDK generates a signature by changing
the region name to lowercase. (AWS region names are all lowercase.)
The default region name of OpenStack is RegionOne, and custom region
names with capital letters can also be used.
If you set the location of the S3 API to a region name containing
uppercase letters, the AWS .NET SDK cannot be used.

There are two ways to solve this problem.

1. Force the location item of S3 API middleware setting to be set
   to lower case.
2. If the request contains credentail parameters that contain the
   lowercase region name, the region name of string_to_sign is
   modified to lowercase to generate a valid signature.

I think the second way is to make it more compatible.

Closes-Bug: #1888444
Change-Id: Ifb58b854b93725ed2a1e3bbd87f447f2ab40ea91
2020-07-28 08:47:51 +09:00
..
middleware s3api: Allow lower-cased region name for AWS .NET SDK compatibility 2020-07-28 08:47:51 +09:00
ring Update hacking for Python3 2020-04-03 21:21:07 +02:00
__init__.py Start using Hacking 2013-07-15 11:41:58 +02:00
base_storage_server.py Make log format for requests configurable 2019-05-02 17:43:25 -06:00
bufferedhttp.py py3: stop barfing on message/rfc822 Content-Types 2020-03-26 12:55:54 -07:00
constraints.py Deprecate per-service auto_create_account_prefix 2020-01-05 09:53:30 -06:00
container_sync_realms.py Python3: Fix test/unit/common/test_container_sync_realms.py 2019-01-29 09:04:36 -06:00
daemon.py Optimize obj replicator/reconstructor healthchecks 2020-04-01 08:03:32 -04:00
db.py Breakup reclaim into batches 2020-05-22 21:15:57 +00:00
db_replicator.py replication: Allow databases_per_second to be a float 2020-05-15 13:23:17 -07:00
direct_client.py Add normalize_etag() helper function 2019-12-14 01:53:43 +00:00
exceptions.py Fix socket leak on object-server death 2019-01-31 18:38:35 +00:00
header_key_dict.py py3: Fix s3api header casing 2019-11-20 12:14:35 -08:00
http.py s3api: Better handle 498/429 responses 2019-12-05 09:42:33 -08:00
internal_client.py Update hacking for Python3 2020-04-03 21:21:07 +02:00
linkat.py pep8: Turn on E305 2020-04-03 21:22:38 +02:00
manager.py Update hacking for Python3 2020-04-03 21:21:07 +02:00
memcached.py memcached: Plumb logger into MemcacheRing 2020-06-09 14:32:04 -05:00
request_helpers.py Apply limit to list versioned containers 2020-03-03 11:27:21 -08:00
splice.py pep8: Turn on E305 2020-04-03 21:22:38 +02:00
storage_policy.py Update hacking for Python3 2020-04-03 21:21:07 +02:00
swob.py Simplify wsgify() 2020-05-27 03:19:13 +00:00
utils.py Merge "py3: (Better) fix percentages in configs" 2020-06-19 03:20:28 +00:00
wsgi.py py3: (Better) fix percentages in configs 2020-06-09 17:46:44 -07:00