在 Michael Hartl 撰写的《Rails 教程》第 11 章末尾,我通过创建存储桶、使用 IAM 设置用户并授予用户 AmazonS3FullAccess 策略,成功地实现了用户上传到 Amazon S3 服务的功能。允许我网站上的未知用户完全访问我网站上的图像上传存储桶,这感觉很肮脏且非常不安全,我不确定我是否应该有这种感觉。我创建了一个自定义策略
- http://awspolicygen.s3.amazonaws.com/policygen.html http://awspolicygen.s3.amazonaws.com/policygen.html
如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1445501067518",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucketname"
}
]
}
我对我的解决方案没有信心,并且无法通过谷歌搜索来找到解决此问题的最佳方法的任何答案。我正在使用 Carrierwave(打算在我自己的项目中使用 Carrierwave_direct)、Fog 和 mini_magick gems。
允许用户将文件上传到您的网站(即 S3)的最佳且可能是最安全的方法是使用基于浏览器的帖子上传。
这使用户可以直接上传到 S3,而无需通过您的服务器。在您的服务器上,您只需使用访问密钥创建请求签名即可。
你可以在这里读更多关于它的内容:使用 Post 基于浏览器的上传 http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingHTTPPOST.html
我自己对载波并不熟悉,但您可能会发现这很有用:直接上传到rails中的S3 https://devcenter.heroku.com/articles/direct-to-s3-image-uploads-in-rails
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)