Amazon S3 Upload: Support non-standard locations
When trying to publish a repository to an Amazon S3 bucket stored in a location different from 'US Standard', you get the following exception:
File "/home/user/.local/lib/python3.5/site-packages/fdroidserver/server.py", line 61, in update_awsbucket
container = driver.get_container(container_name=awsbucket)
File "/home/user/.local/lib/python3.5/site-packages/libcloud/storage/drivers/s3.py", line 297, in get_container
method='HEAD')
File "/home/user/.local/lib/python3.5/site-packages/libcloud/common/base.py", line 871, in request
response = responseCls(**kwargs)
File "/home/user/.local/lib/python3.5/site-packages/libcloud/common/base.py", line 179, in __init__
message=self.parse_error(),
File "/home/user/.local/lib/python3.5/site-packages/libcloud/storage/drivers/s3.py", line 92, in parse_error
driver=S3StorageDriver)
libcloud.common.types.LibcloudError: <LibcloudError in <class 'libcloud.storage.drivers.s3.S3StorageDriver'> 'This bucket is located in a different region. Please use the correct driver.'>
To support other locations, a different driver needs to be used, so instead of get_driver(Provider.S3)
, something like get_driver(Provider.S3_EU_WEST)
should be supported based on a user specified bucket location.