Загрузка в AWS s3 bucket с использованием браузера и сервера в python.Python-код обрабатывает все авторизации, необходимые для браузера, чтобы начать загрузку частей.
upload_res = s3.create_multipart_upload(Bucket=bucket,
Key=key,
ACL='private',
ContentType=mime_type
)
upload_id = upload_res.get('UploadId')
Теперь, когда я попытался сгенерировать URL-адреса для последовательных частей загрузки:
s3.generate_presigned_url('upload_part', Params={'Bucket': bucket,
'Key': key
'UploadId': upload_id,
'PartNumber': 2},
ExpiresIn=3600,
HttpMethod='PUT'
)
Следующая ошибка в ответе:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does
not match the signature you provided. Check your key and signing method.</Message>
<AWSAccessKeyId>access_key_id</AWSAccessKeyId>
<StringToSign>PUT
multipart/form-data; boundary=--------------------------630928290158318599002940
1568981516
/bucket_name/file_name.jpg?partNumber=1&uploadId=2wes3ewsae3</StringToSign>
<SignatureProvided>xxD0in9eMN29r7RaYkC8K2/IjLw=</SignatureProvided>
<StringToSignBytes>ws 3ws 5wex</StringToSignBytes>
<RequestId>653E97C8E7F01D</RequestId>
<HostId>kj/2wj</HostId>
</Error>