2017-02-21 8 views
0

Я пытаюсь создать IAM пользователю, что разрешено:Доступ запрещен к S3 объектов Загрузил с помощью SDK

  • Загрузить объекты
  • Get объектов
  • Список Ковш объектов

политика, похоже, работает. Однако я не могу просматривать изображения, загруженные с помощью SDK S3. При обращении к одному из файлов изображений в теге HTML <img /> я получаю ошибку 403 Forbidden. С другой стороны, я могу успешно просматривать изображения, которые были загружены с помощью консоли AWS с настройками по умолчанию, без установки каких-либо дополнительных политик и т. Д. Есть ли атрибут, который я не устанавливаю при загрузке изображения на S3 с помощью SDK?

{ 
"Version": "2012-10-17", 
"Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": [ 
      "s3:ListBucket" 
     ], 
     "Resource": [ 
      "arn:aws:s3:::my_bucket" 
     ], 
     "Condition": { 
      "IpAddress": { 
       "aws:SourceIp": "MyIpV4Address" 
      } 
     } 
    }, 
    { 
     "Effect": "Allow", 
     "Action": [ 
      "s3:PutObject", 
      "s3:PutObjectAcl", 
      "s3:GetObject", 
      "s3:GetObjectAcl" 
     ], 
     "Resource": [ 
      "arn:aws:s3:::my_bucket/*" 
     ], 
     "Condition": { 
      "IpAddress": { 
       "aws:SourceIp": "MyIpV4Address" 
      } 
     } 
    } 
]} 

Код JavaScript, который я использую для загрузки файлов.

handleFileUpload(acceptedFiles, rejectedFiles) { 
return Promise.map(acceptedFiles.map(file => { 
    const object = { 
     Key: `some-image-key.jpg`, 
     Body: file, 
     ContentType: file.type, 
     StorageClass: 'STANDARD_IA' 
    } 
    return this.s3.putObject(object).promise(response => { 
     console.log(response); 
    }); 
    })); 

ответ

0

загрузка Try с дополнительным: .withCannedAcl(BucketOwnerFullControl)

Это указывает владельца ведра, но не обязательно совпадает с владельцем объекта, предоставляется Permission.FullControl.

См:

 Смежные вопросы

  • Нет связанных вопросов^_^