Я новичок в Angular 6 и застрял в проблеме, чтобы получить файл image / doc / excel из ведра aws S3.
Вот мой код:
var S3 = new AWS.S3();
const params = {
Bucket: 'asdasd',
region: 'asadas1',
accessKeyId: '[accessKeyId]',
secretAccessKey: '[secretAccessKey]',
}
S3.listObjects(params, function (err, data) {
if (err) {
console.info('There was an error getting your files: ' + err);
return;
}
console.info('Successfully get files.', data);
const fileDatas = data.Contents;
fileDatas.forEach(function (file) {
});
});
У меня ошибка:
MultipleValidationErrors: There were 3 validation errors:
* UnexpectedParameter: Unexpected key 'region' found in params
* UnexpectedParameter: Unexpected key 'accessKeyId' found in params
* UnexpectedParameter: Unexpected key 'secretAccessKey' found in params
Я хочу получать изображения из s3 и отображать их на моей HTML-странице.
я еще ничего не получил по этому URL-адресу grokonez.com/frontend/…, и это не работает для меня ..
Говорить людям, которые помогают вам бесплатно, сделать что-то как можно скорее - не самая лучшая идея.





Проблема в том, что вы использовали недопустимые параметры для вызовов API - SDK не знает, что делать с region, accessKeyId и secretAccessKey:
const params = {
Bucket: 'asdasd',
region: 'asadas1', // Here,
accessKeyId: '[accessKeyId]', // here
secretAccessKey: '[secretAccessKey]', // and here
}
Пожалуйста, см. Документация по API listObjects для справки.
Очевидно, ваш SDK настроен неправильно, см. Документацию о том, как это сделать.
Примечание. Если вы используете клиентскую JS-Framework, такую как Angular, жестко задавать учетные данные безопасности - ужасная идея! Ваши пользователи смогут видеть их и использовать их для доступа к другим ресурсам. Документация, которую я привел выше, показывает вам лучшие варианты.
Если вы хотите игнорировать Best Practices, чего вам категорически не следует, вы можете сделать это следующим образом:
Задайте информацию о AWS в начале сценария, как описано в здесь:
AWS.config.update({
region: 'us-east-1',
accessKeyId: "Don't do this",
secretAccessKey: "It's a terrible idea!"
});
Повторюсь, жестко кодировать учетные данные в коде на стороне клиента - ужасная идея!
Попробуйте пакет multer-s3 в npm. Пользуюсь, работает нормально.
СОВЕТ: НИКОГДА НЕ РАЗМЕЩАЙТЕ ВАШ КЛЮЧ И СЕКРЕТНЫЙ ИДЕНТИФИКАТОР AWS, КАК ЭТО ... Я ПОВТОРЯЮ. НЕ !!!!! .. Удалите этот пост или сделайте свой ключ доступа неактивным.
покажите, что пробовали, вот как спросить - stackoverflow.com/help/how-to-ask