Проблемы с загрузкой изображения из корзины Amazon S3 (без использования URL-адреса) - PullRequest
1 голос
/ 27 мая 2020

Я следую советам разных пользователей на этом веб-сайте и получаю онлайн-руководства, но когда я пытаюсь загрузить изображение из S3 Amazon Bucket, на локальном экране отображается только «[Object Object]» вместо изображения . Учетные данные для учетной записи верны, и я смог показать изображения из корзины при загрузке только html для самого изображения. Однако я использую шаблон PUG, поэтому, возможно, мне не хватает чего-то важного, чтобы учесть дополнительную сложность.

router.get('/', function (req, res, next) {
AWS.config.update({
    accessKeyId: "{{key}}",
    secretAccessKey: "{{key}}",
    defaultRegionName: 'eu-west-2'
});

let s3 = new AWS.S3();
this.image = s3.getObject({
    Bucket: 'foodproducts',
    Key: 'SainsShroomdogs.jpg'
}, function (errtxt, file) {
    if (errtxt) {
        console.Log("lireFic", "ERR " + errtxt);
    } else {
        console.log('lecture OK')
        this.image.src = "data:image/png;base64," + encode(file.Body);

    }
});

function encode(data) {
    var str = data.reduce(function (a, b) {
        return a + String.fromCharCode(b)
    }, '');
    return btoa(str).replace(/.{76}(?=.)/g, '$&\n');
}

res.render('index', {
    productName: this.name,
    productDescription: this.description,
    imageTest: this.image
});

}); Locally hosted page

Вот код файла .pug:

    doctype html
head
  meta(charset='UTF-8')
  title Internet Food Database
  style
    include ./SearchPageStylesheet.css

.container
  .top
    p  Top
  .middle
    .left
      p  Left
    .centre
      .productImage

      .productTitleText
        h1= productName
        p=  productDescription
        imageTest= imageTest
    .right
      p  Right
  .bottom
    p  Bottom

Как мне получить изображение из частного ведра Amazon S3, а затем сохранить его внутри этого .image, готов к показу на локальной странице html?

...