我最近继承了一个使用 S3 来存储资源的 Rails 应用程序。我已将所有资产转移到我的 S3 存储桶,没有任何问题。但是,当我更改应用程序以指向新存储桶时,我收到 403 禁止状态。
我的 S3 存储桶设置如下:
权限
大家可以列出来
桶策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucketname/*"
}
]
}
CORS配置
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
</CORSRule>
<CORSRule>
<AllowedOrigin>https://www.appdomain.com</AllowedOrigin>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
静态虚拟主机
Enabled.
我还能做些什么来让公众获得这些资产?
我知道这是一个旧线程,但我刚刚遇到了同样的问题。我已经让一切正常工作了几个月,但它突然停止工作,给了我一个403 Forbidden
错误。事实证明系统时钟才是真正的罪魁祸首。我认为 s3 使用某种基于时间的令牌,其生命周期非常短。就我而言,我只是跑了:
ntpdate pool.ntp.org
然后问题就消失了。我在跑CentOS 6
如果有任何相关性的话。这是示例输出:
19 Aug 20:57:15 ntpdate[63275]: step time server ip_address offset 438.080758 sec
希望有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)