Я впервые внедряю aws s3, используя aws-sdk на Node.js
В настоящее время я пытаюсь получить из него клиентский пакет SUT и его PUT.Тем не менее, когда я пытаюсь PUT, он возвращает код состояния 403.
Это мой внутренний код:
const s3 = new AWS.S3({
accessKeyId: keys.accessKeyId,
secretAccessKey: keys.secretAccessKey
});
app.get('/api/upload', requireLogin, (req, res) => {
let key = `${req.user.id}/${uuid()}.jpeg`
s3.getSignedUrl('putObject', {
Bucket: 'advanced-node-blog',
ContentType: 'image/jpeg',
Key: key
},
(err, url) => res.send({ key, url }));
});
На входе:
// presigned URL
const uploadConfig = await axios.get('/api/upload');
await axios.put(uploadConfig.data.url, file, {
headers: {
'Content-Type': file.type
}
});
Когда я ПОЛУЧУ URL, я получу это сообщение:
The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.
Я исследовал эту ошибку и пришел к выводу, что мне не хватает signatureVersion: 'v4',
.Однако, когда я добавил это, ошибка изменилась на Error parsing the X-Amz-Credential parameter; the region 'us-east-1' is wrong; expecting 'us-east-2'
ТАК, тогда я добавил region: 'us-east-2'
.Затем ошибка изменилась на The request signature we calculated does not match the signature you provided. Check your key and signing method.
Я изменил созданные новые учетные данные и установил их, но все еще не прогрессировал ..
Есть какие-либо подсказки относительно того, что я могу делать неправильно?
Заранее спасибо!