Предварительная подпись объекта putObject возвращает ошибку SignatureDoesNotMatch - Nodejs AWS SDK S3 - PullRequest
0 голосов
/ 28 сентября 2019

Я генерирую предварительно назначенные URL-адреса S3, используя NodeJS AWS SDK.Вот мой код:

const s3 = new AWS.S3({accessKeyId: process.env.S3_ACCESS_KEY, secretAccessKey: process.env.S3_SECRET_KEY, region: process.env.S3_REGION});

const params = {Bucket: process.env.S3_BUCKET, Key: myKey, Expires: signedUrlExpireSeconds};

s3.getSignedUrl('putObject', params, (err, url) =>{
   console.log(url);
});

, и когда я захожу на URL с помощью браузера, он показывает эту ошибку

Рассчитанная нами подпись запроса не соответствует предоставленной вами подписи.Проверьте ваш ключ и метод подписи.

Когда я использую getObject вместо putObject, ошибки не возникает, что означает, что ошибки нет, что означает, что проблема не в опечатке в учетных данных, и я потерялсяк чему может быть проблема.Вот моя политика ведра

{
    "Version": "2012-10-17",
    "Id": "Policy1569445631515",
    "Statement": [
        {
            "Sid": "Stmt1569445628329",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::206282324005:user/<user-name>"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::<bucket-name>/*"
        }
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...