Не удалось сгенерировать предварительно подписанный URL для aws s3 - PullRequest
0 голосов
/ 22 февраля 2020

Я использую следующий код для генерации предварительно подписанного URL, используя aws sdk в javascript.

const aws = require("aws-sdk");
const s3 = new aws.S3();
AWS.config.update({
    accessKeyId: "generated access key",
    secretAccessKey: "generated secret key"
})

const s3_param = {
    Bucket: "bucket-name",
    Key: "file-name"
}

const signedUrl = s3.getSignedUrl("putObject", s3_param);
console.log(signedUrl);

Это дает мне undefined. Если я передаю обратный вызов в качестве аргумента 3ed, он вообще не выполняется. Что мне здесь не хватает?

Редактировать

Удаление пакета aws-sdk и его повторная установка работали для меня. Не уверен почему.

1 Ответ

0 голосов
/ 22 февраля 2020

Полагаю, вы создали env. файл в каталоге root вашего проекта. Затем добавьте переменные среды c для хоста, пользователя и пароля.

require('dotenv').load();
require('dotenv').config();
var AWS = require('aws-sdk');
var credentials = {
    accessKeyId: process.env.S3_ACCESS_KEY,
    secretAccessKey : process.env.S3_SECRET_KEY
};
AWS.config.update({credentials: credentials, region: 'eu-central-1'});
var s3 = new AWS.S3();

var presignedGETURL = s3.getSignedUrl('getObject', {
    Bucket: 'presignedurldemo',
    Key: 'ivana.jpg', 
    Expires: 60
});

Это должно работать для создания URL GET с использованием AWS S3 класс.

...