diff --git a/.changes/next-release/enhancement-s3-1285.json b/.changes/next-release/enhancement-s3-1285.json new file mode 100644 index 00000000..97406754 --- /dev/null +++ b/.changes/next-release/enhancement-s3-1285.json @@ -0,0 +1,5 @@ +{ + "category": "s3", + "type": "enhancement", + "description": "Add support for ``ExpectedBucketOwner``. Fixes `#181 `__." +} diff --git a/s3transfer/constants.py b/s3transfer/constants.py index 01ef9101..b760643e 100644 --- a/s3transfer/constants.py +++ b/s3transfer/constants.py @@ -23,6 +23,7 @@ 'SSECustomerKey', 'SSECustomerKeyMD5', 'RequestPayer', + 'ExpectedBucketOwner', ] USER_AGENT = 's3transfer/%s' % s3transfer.__version__ diff --git a/s3transfer/copies.py b/s3transfer/copies.py index 625e1995..4b4086c2 100644 --- a/s3transfer/copies.py +++ b/s3transfer/copies.py @@ -34,7 +34,8 @@ class CopySubmissionTask(SubmissionTask): 'CopySourceSSECustomerKey': 'SSECustomerKey', 'CopySourceSSECustomerAlgorithm': 'SSECustomerAlgorithm', 'CopySourceSSECustomerKeyMD5': 'SSECustomerKeyMD5', - 'RequestPayer': 'RequestPayer' + 'RequestPayer': 'RequestPayer', + 'ExpectedBucketOwner': 'ExpectedBucketOwner' } UPLOAD_PART_COPY_ARGS = [ @@ -49,6 +50,7 @@ class CopySubmissionTask(SubmissionTask): 'SSECustomerAlgorithm', 'SSECustomerKeyMD5', 'RequestPayer', + 'ExpectedBucketOwner' ] CREATE_MULTIPART_ARGS_BLACKLIST = [ @@ -64,7 +66,8 @@ class CopySubmissionTask(SubmissionTask): ] COMPLETE_MULTIPART_ARGS = [ - 'RequestPayer' + 'RequestPayer', + 'ExpectedBucketOwner' ] def _submit(self, client, config, osutil, request_executor, diff --git a/s3transfer/manager.py b/s3transfer/manager.py index 842e6833..c6e6eb47 100644 --- a/s3transfer/manager.py +++ b/s3transfer/manager.py @@ -165,6 +165,7 @@ class TransferManager(object): 'ContentEncoding', 'ContentLanguage', 'ContentType', + 'ExpectedBucketOwner', 'Expires', 'GrantFullControl', 'GrantRead', @@ -199,6 +200,7 @@ class TransferManager(object): 'MFA', 'VersionId', 'RequestPayer', + 'ExpectedBucketOwner' ] VALIDATE_SUPPORTED_BUCKET_VALUES = True diff --git a/s3transfer/upload.py b/s3transfer/upload.py index e333a7e9..27451e5e 100644 --- a/s3transfer/upload.py +++ b/s3transfer/upload.py @@ -490,10 +490,12 @@ class UploadSubmissionTask(SubmissionTask): 'SSECustomerAlgorithm', 'SSECustomerKeyMD5', 'RequestPayer', + 'ExpectedBucketOwner' ] COMPLETE_MULTIPART_ARGS = [ - 'RequestPayer' + 'RequestPayer', + 'ExpectedBucketOwner' ] def _get_upload_input_manager_cls(self, transfer_future):