Я работаю над проектом, в котором я могу создавать общие ссылки для пользователей, срок действия которых истекает через некоторое время, и ссылка может быть восстановлена. Я перепробовал все решения в Интернете для создания подписанных URL-адресов, но ни одно из них не работает для меня.
Я использовал метод getSignedUrl узла aws -sdk и другие сторонние организации. пакеты, но ни один из них не работает
, когда я пытаюсь получить доступ к файлу по ссылке S3 , он возвращает ошибку
здесь это код, который я использую
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 '
Пожалуйста, помогите мне с кодом или ссылками