【发布时间】:2017-02-21 10:57:15
【问题描述】:
我正在尝试创建一个允许执行以下操作的 IAM 用户:
- 上传对象
- 获取对象
- 列出桶对象
该政策似乎奏效了。但是,我无法查看通过 S3 SDK 上传的图像。在 HTML <img /> 标记中引用其中一个图像文件时,我收到 403 Forbidden 错误。另一方面,我能够使用默认值成功查看通过 AWS 控制台上传的图像,而无需设置任何其他策略等。使用 SDK 将图像上传到 S3 时是否有我没有设置的属性?
{
"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);
});
}));
【问题讨论】:
标签: amazon-s3