Угловой 7: отображение изображений продукта внутри цикла с помощью клавиши s3 не работает - PullRequest
0 голосов
/ 07 мая 2019

Я вызываю функцию для получения URL-адреса из корзины s3 путем передачи ключа.Функция работает нормально, я получаю URL изображения, но не могу отобразить его в HTML

HTML код


<div *ngFor="let i of data">
    <img [src]="getImage(i.key)" />
</div>

код компонента


getImage(key: string) {    
    var awsConfig = new AWS.Config({
      accessKeyId: 'XXXXXXXXXXXXXXXXX',
      secretAccessKey: 'XXXXXXXXXXXXXXXXX',
      region: 'XXXXXXXXXXXXXXXXX'
    });
    const s3 = new AWS.S3(awsConfig);

      const urlParams = {
        Bucket: 'my-bucket',
        Key: key,
      };
      new Promise((resolve, reject) => {
        s3.getSignedUrl('getObject', urlParams, (err, url) => {          
          if (err) reject(err)
          else resolve(url);
          return url;                    
        });
      });    
  }

1 Ответ

0 голосов
/ 07 мая 2019

Вам необходимо вернуть значение url из вашей функции getImage ()

getImage(key: string) {    
var awsConfig = new AWS.Config({
  accessKeyId: 'XXXXXXXXXXXXXXXXX',
  secretAccessKey: 'XXXXXXXXXXXXXXXXX',
  region: 'XXXXXXXXXXXXXXXXX'
});
const s3 = new AWS.S3(awsConfig);

  const urlParams = {
    Bucket: 'my-bucket',
    Key: key,
  };
  return new Promise((resolve, reject) => {
    s3.getSignedUrl('getObject', urlParams, (err, url) => {          
      if (err) reject(err)
      else resolve(url);                    
    });
  });    


}
...