ОШИБКА: SignatureDoesNotMatch получает эту ошибку при попытке загрузить файл из почтальона, используя предварительно назначенный URL - PullRequest
0 голосов
/ 16 октября 2019

пытался загрузить файл с использованием заранее заданного URL и попробовал все решение из stackoverflow, но у меня ничего не вышло. Lambda имеет полный доступ к S3, но это не является ключевой проблемой, но появляется следующая ошибка:

<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>AKIAZRFKVHH444H7KZHN</AWSAccessKeyId>
    <StringToSign>AWS4-HMAC-SHA256 

Найдите код, который я пробовал:

xsdfileurl= s3_con.generate_presigned_url(
       ClientMethod='put_object',
       Params={
         'Bucket': event["Bucketname"],
         'Key': "{}/{}".format("CR001CN001/1", event["Files"][0]),
       },
       ExpiresIn=6000)    
       print(xsdfileurl)

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 17 октября 2019

Я сам потратил впустую целый день на выяснение основной причины и обнаружил одну глупую ошибку, что конфигурация CORS отсутствовала в корзине.

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
...