Я пытаюсь создать 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);
});
}));