我只是想知道配置设置是否完全改变(自Rails 4以来)关于设置asset_sync
和从s3存储桶提供我的资产。
我似乎无法提供我的css或js资产(虽然图片,jpg,png)都可以。我可以将所有内容上传到我的s3桶中。
在我投入生产之前,我试图在开发环境中使用它。
因此我的asset_sync.rb
初始化程序设置如此
if defined?(AssetSync)
AssetSync.configure do |config|
config.fog_provider = 'AWS'
config.aws_access_key_id = ENV['AWS_ACCESS_KEY_ID']
config.aws_secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']
config.fog_directory = ENV['FOG_DIRECTORY']
config.existing_remote_files = "delete"
config.gzip_compression = true
config.manifest = true
config.custom_headers = { '.*' => { cache_control: 'max-age=315576000', expires: 1.year.from_now.httpdate } }
end
end
所以我知道这部分是可以的,因为资产被上传到存储桶,但是当我尝试渲染我的页面时,没有显示css / js或图像。我在我的development.rb
中设置了这个config.action_controller.asset_host = "https://#{ENV['FOG_DIRECTORY']}.s3.amazonaws.com"
我现在回过头来看每个资产都是403
被禁止的错误。
这是我的IAM政策,也许有人可以在这里找到一些不正确的东西?
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:ListAllMyBuckets",
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::*"
},
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::mybucket"
},
{
"Action": "s3:*",
"Effect": "Allow",
"Resource": "arn:aws:s3:::mybucket/*"
}
]
}
我还添加了一个存储桶策略
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::mybucket/*"]
}
]
}
我正在寻找的是有人展示他们如何使用asset_sync设置他们的Rails应用程序,请查看我是否遗漏了任何内容。