Общий доступ к файлам AWS S3 - PullRequest
0 голосов
/ 26 марта 2020

Я работаю над проектом, в котором я могу создавать общие ссылки для пользователей, срок действия которых истекает через некоторое время, и ссылка может быть восстановлена. Я перепробовал все решения в Интернете для создания подписанных URL-адресов, но ни одно из них не работает для меня.

Я использовал метод getSignedUrl узла aws -sdk и другие сторонние организации. пакеты, но ни один из них не работает

, когда я пытаюсь получить доступ к файлу по ссылке S3 , он возвращает ошибку error

здесь это код, который я использую

const s3 = new AWS.S3({
    accessKeyId: ID,
    signatureVersion: 'v4',
    secretAccessKey: SECRET,
    region:region
});

const uploadFile = (filePath) => {
    // Read content from the file
    const fileContent = fs.readFileSync(filePath);

    const params = {
        Bucket: BUCKET_NAME,
        Key: `Share-TEST/${Date.now()}`,
        ACL:"private",
        ContentType:"image/jpeg",
        Body: fileContent
    };
    s3.upload(params, function(err, data) {
        if (err) {
            throw err;
        }
        console.log(data.Location);


        s3.getSignedUrl('getObject', {Bucket: BUCKET_NAME, Key: data.Key, Expires: 60}, function (err, url) {
            console.log(err,url)
          })
    });
};

uploadFile("/path/to/file")

, и сгенерированный URL является ссылкой

https://bucket-name.s3.aws-region.amazonaws.com/Share-TEST/15852504924-1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=111111111111111 / 22222222 / region-name / s3 / aws4_request & X-Amz-Date = 202033333416Z & X-Amz-Expires = 60 & X-Amz-Signature = 333333333 & X-Amz-SignedHeaders = host '

Пожалуйста, помогите мне с кодом или ссылками

...