Allow setting of boto's S3 host for SIGv4
The problem only happens when a user has configured the new AWS Frankfurt region for their S3 backend. It is the only region to require the new v4 signature. All other regions support both v2 and v4. I'm not sure which version is used by default on US Standard. We could attempt to figure out where the bucket is hosted based on its DNS resolution and auto-populate the host field that way. But I think the amount of effort to have that work correctly outweighs its benefit for such a simple solution. fixes #863 fixes #764
This commit is contained in:
parent
f17984b93d
commit
b3c2388618
2 changed files with 5 additions and 2 deletions
|
@ -69,7 +69,8 @@ angular.module("core-config-setup", ['angularFileUpload'])
|
|||
{'name': 's3_access_key', 'title': 'AWS Access Key', 'placeholder': 'accesskeyhere', 'kind': 'text'},
|
||||
{'name': 's3_secret_key', 'title': 'AWS Secret Key', 'placeholder': 'secretkeyhere', 'kind': 'text'},
|
||||
{'name': 's3_bucket', 'title': 'S3 Bucket', 'placeholder': 'my-cool-bucket', 'kind': 'text'},
|
||||
{'name': 'storage_path', 'title': 'Storage Directory', 'placeholder': '/path/inside/bucket', 'kind': 'text'}
|
||||
{'name': 'storage_path', 'title': 'Storage Directory', 'placeholder': '/path/inside/bucket', 'kind': 'text'},
|
||||
{'name': 'host', 'title': 'S3 Host (optional)', 'placeholder': 's3.amazonaws.com', 'kind': 'text', 'optional': true}
|
||||
],
|
||||
|
||||
'GoogleCloudStorage': [
|
||||
|
|
|
@ -250,11 +250,13 @@ class _CloudStorage(BaseStorage):
|
|||
|
||||
|
||||
class S3Storage(_CloudStorage):
|
||||
def __init__(self, storage_path, s3_access_key, s3_secret_key, s3_bucket):
|
||||
def __init__(self, storage_path, s3_access_key, s3_secret_key, s3_bucket, host=None):
|
||||
upload_params = {
|
||||
'encrypt_key': True,
|
||||
}
|
||||
connect_kwargs = {}
|
||||
if host:
|
||||
connect_kwargs['host'] = host
|
||||
super(S3Storage, self).__init__(boto.s3.connection.S3Connection, boto.s3.key.Key,
|
||||
connect_kwargs, upload_params, storage_path, s3_access_key,
|
||||
s3_secret_key, s3_bucket)
|
||||
|
|
Reference in a new issue