доступ к файлам из корзины s3 на стороне клиента meteor.js - PullRequest
0 голосов
/ 20 ноября 2018

Так что я изо всех сил пытаюсь получить изображения из корзины s3, чтобы показать клиентскую сторону в метеорном приложении. Я использую пакет узла aws-sdk. Я получаю объекты в своей консоли на стороне сервера, и если я изменяю свою политику корзины на общедоступную, это также работает. Тот факт, что объекты отображаются в консоли при запуске, но не отображаются на стороне клиента, заставляет меня думать, что это проблема с метеором. У меня просто возникают проблемы с поиском хорошей документации по этому вопросу.

server.js

Meteor.startup(() => {
AWS.config.update({
    accessKeyId: Meteor.settings.AWS.S3.accessId,
    secretAccessKey: Meteor.settings.AWS.S3.secret
  });

  s3 = new AWS.S3({
    region: "<my-region>"
  });

  var params = {
    Bucket: "<my-bucket-name>"
  };

  s3.listObjects(
    params,
    Meteor.bindEnvironment(function(err, data) {
      if (err) throw err;
      console.log(data);
    })
  );
})

Вот моя политика сегмента (когда я устанавливаю ресурс *, он работает, но я хочу, чтобы ресурс был настроен на конкретную учетную запись IAM):

{
    "Version": "2008-10-17",
    "Id": "Policy-some-number",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<current-iam-account-in>"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<bucket-name>/*"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<current-iam-account-in>"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::<bucket-name>/*"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<current-iam-account-in>"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::<bucket-name>"
        }
    ]
}
...