Изображение дисплея Angular 6, полученное из AWS S3

Я новичок в 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-странице.

покажите, что пробовали, вот как спросить - stackoverflow.com/help/how-to-ask

Tushar Walzade 02.01.2019 08:21

я еще ничего не получил по этому URL-адресу grokonez.com/frontend/…, и это не работает для меня ..

Ricky 02.01.2019 08:31

Говорить людям, которые помогают вам бесплатно, сделать что-то как можно скорее - не самая лучшая идея.

James Z 02.01.2019 16:04
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
3
4 678
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Проблема в том, что вы использовали недопустимые параметры для вызовов 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, КАК ЭТО ... Я ПОВТОРЯЮ. НЕ !!!!! .. Удалите этот пост или сделайте свой ключ доступа неактивным.

Другие вопросы по теме