我正在尝试使用导轨和回形针上的红宝石在s3存储桶上上传图像,但无法正常工作,我已经尝试了网络上的几乎所有内容。
我知道对此有很多问题,但是我尝试了大多数问题,但没有任何效果,请复查该问题,因为我列出了我在该问题中尝试过的事情
我确实设置了IAM用户,并且用户具有AmazonS3FullAccess策略
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
我确实在存储桶上设置了策略
{
"Version": "2012-10-17",
"Id": "Policy1557294263403",
"Statement": [
{
"Sid": "Stmt1557294241958",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::726051891502:user/borroup-admin"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::borroup",
"arn:aws:s3:::borroup/*"
]
}
]
}
我确实在存储桶上设置了CORS配置编辑器
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
我确保将此存储桶的所有“公共访问权限”设置都设置为“假”
这是Rails配置上的红宝石
注意:我为此使用了用户access_key_id和secret_access_key
config.paperclip_defaults = {
storage: :s3,
path: ':class/:attachment/:id/:style/:filename',
s3_host_name: 's3.us-east-2.amazonaws.com',
s3_credentials:{
bucket:'borroup',
access_key_id: '************',
secret_access_key:'***************************',
s3_region:'us-east-2'
}
}
Aws::S3::Errors::AccessDenied in PhotosController#create
答案 0 :(得分:0)
存储桶和IAM用户是否在不同的帐户中? 如果是这样,则说明存储桶策略不正确,请选择正确的存储桶策略
{ “ Version”:“ 2012-10-17”, “ Id”:“ Policy1557294263403”, “声明”:[ { “ Sid”:“ Stmt1557294241958”, “效果”:“允许”, “校长”:{ “ AWS”:“ arn:aws:iam :: 726051891502:user / borroup-admin” }, “ Action”:“ s3:”, “资源”:[“ arn:aws:s3 ::: borroup”,“ arn:aws:s3 ::: borroup / ”] } ] }
//-> borroup / asterisk->由于某种原因,此处删除了星号符号,或者我可能不知道如何正确使用stackoverflow。
如果“用户”和“存储桶”位于同一帐户中,则该策略无关紧要,因为IAM用户具有完全权限。