Skip to content

Commit c547aba

Browse files
authored
Merge pull request #1 from deepnote/sse-c-fix-head-on-s3s3-multipart
Fix sse-c HeadObject headers for s3-s3 copy
2 parents 66af26f + 9b6f12e commit c547aba

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

awscli/customizations/s3/subscribers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ def _get_head_object_response(self, future):
279279
'Bucket': copy_source['Bucket'],
280280
'Key': copy_source['Key'],
281281
}
282-
utils.RequestParamsMapper.map_head_object_params(
282+
utils.RequestParamsMapper.map_head_object_params_with_copy_source_sse(
283283
head_object_params, self._cli_params)
284284
return self._client.head_object(**head_object_params)
285285

awscli/customizations/s3/utils.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,12 @@ def map_head_object_params(cls, request_params, cli_params):
505505
cls._set_sse_c_request_params(request_params, cli_params)
506506
cls._set_request_payer_param(request_params, cli_params)
507507

508+
@classmethod
509+
def map_head_object_params_with_copy_source_sse(cls, request_params, cli_params):
510+
"""Map CLI params to HeadObject request params, considering the SSE-C header from the copy source"""
511+
cls._set_sse_c_request_params_with_copy_source_sse(request_params, cli_params)
512+
cls._set_request_payer_param(request_params, cli_params)
513+
508514
@classmethod
509515
def map_create_multipart_upload_params(cls, request_params, cli_params):
510516
"""Map CLI params to CreateMultipartUpload request params"""
@@ -618,6 +624,12 @@ def _set_sse_c_request_params(cls, request_params, cli_params):
618624
request_params['SSECustomerAlgorithm'] = cli_params['sse_c']
619625
request_params['SSECustomerKey'] = cli_params['sse_c_key']
620626

627+
@classmethod
628+
def _set_sse_c_request_params_with_copy_source_sse(cls, request_params, cli_params):
629+
if cli_params.get('sse_c_copy_source'):
630+
request_params['SSECustomerAlgorithm'] = cli_params['sse_c_copy_source']
631+
request_params['SSECustomerKey'] = cli_params['sse_c_copy_source_key']
632+
621633
@classmethod
622634
def _set_sse_c_copy_source_request_params(cls, request_params, cli_params):
623635
if cli_params.get('sse_c_copy_source'):

0 commit comments

Comments
 (0)