AWS S3 重定向不工作
AWS S3 redirect not working
我刚刚在 AWS S3 中创建了一个新存储桶。我想在那里托管一些静态文件,但如果它们不在那里,请重定向到我的主服务器。看起来很简单,但我没有按照说明操作。
在存储桶上,我已授予所有人查看权限。
我添加了存储桶策略:
{
"Version": "2012-10-17",
"Id": "Policy999999999",
"Statement": [
{
"Sid": "Stmt9999999999",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*"
}
]
}
在静态网站托管上,我启用了它并创建了简单的 index.htm 和 error.htm 页面(不是我需要它们,但以防万一)。然后添加了这些重定向规则:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>http</Protocol>
<HostName>www.mydomain.com</HostName>
<ReplaceKeyPrefixWith>/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
(显然,如果它没有列表权限,您需要 403 而不是 404,但它不适用于 403/404 的任何变体以及是否具有列表权限)
当我转到不存在的存储桶上的 URL 时(存在的很好),我得到:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>9DD57C7132E76D65</RequestId>
<HostId>
I15odykUdMnGCC+hQfb1pfsnt+gkfGVxuD2sy5PrxrX16P8Njpy3yQiLLH30evTkdOOAl28HA9M=
</HostId>
</Error>
(或 NoSuchKey,如果列表权限打开)
求助!
检查网站托管设置下的控制台,找到您的存储桶的网站端点主机名。
您正在向 REST 端点主机名发送请求 -- 正如 XML 错误消息所证明的那样。
http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html
此外,您需要将键前缀替换为空的,而不是斜杠,否则您将得到两个斜杠。
我刚刚在 AWS S3 中创建了一个新存储桶。我想在那里托管一些静态文件,但如果它们不在那里,请重定向到我的主服务器。看起来很简单,但我没有按照说明操作。
在存储桶上,我已授予所有人查看权限。
我添加了存储桶策略:
{
"Version": "2012-10-17",
"Id": "Policy999999999",
"Statement": [
{
"Sid": "Stmt9999999999",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*"
}
]
}
在静态网站托管上,我启用了它并创建了简单的 index.htm 和 error.htm 页面(不是我需要它们,但以防万一)。然后添加了这些重定向规则:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>http</Protocol>
<HostName>www.mydomain.com</HostName>
<ReplaceKeyPrefixWith>/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
(显然,如果它没有列表权限,您需要 403 而不是 404,但它不适用于 403/404 的任何变体以及是否具有列表权限)
当我转到不存在的存储桶上的 URL 时(存在的很好),我得到:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>9DD57C7132E76D65</RequestId>
<HostId>
I15odykUdMnGCC+hQfb1pfsnt+gkfGVxuD2sy5PrxrX16P8Njpy3yQiLLH30evTkdOOAl28HA9M=
</HostId>
</Error>
(或 NoSuchKey,如果列表权限打开)
求助!
检查网站托管设置下的控制台,找到您的存储桶的网站端点主机名。
您正在向 REST 端点主机名发送请求 -- 正如 XML 错误消息所证明的那样。
http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html
此外,您需要将键前缀替换为空的,而不是斜杠,否则您将得到两个斜杠。