我刚开始使用 Amazon S3 和 CloudFront,并设法在 CloudFront 上创建了一个 S3 存储桶和一个分发。
我的目的是使用 CloudFront 从边缘位置进行简单的图像/css 交付 - 所以我正在研究最基本的 AWS 功能。
我在 S3 存储桶中上传了一些图像,当我尝试使用http://xxx.cloudfront.net/image.jpg访问相同的图像以进行测试时,我收到以下错误:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>ABCD1234</RequestId>
<HostId>
xxxxx
</HostId>
</Error>
我猜我需要在开始交付内容之前验证自己?我已经使用了 AWS-PHP 开发工具包,但不知道该怎么做。AWS Docs 上提供的所有示例都是针对更复杂的功能......似乎没有用于简单图像交付的直接代码示例。
这里有人设置过吗?你是怎么做的?
我的网站是用 PHP 编写的。
任何帮助都感激不尽。
谢谢,
m^e
更新
此AWS 文档页面中的基本链接部分说我可以访问我上传的http://xxx.cloudfront.net/image.jpg格式的资源。
但是,当我这样做时,我得到了拒绝访问的 XML 转储。
所以我回到 S3 存储桶,右键单击图像并单击打开。它使用以下链接格式在弹出窗口中打开图像:http:
//xxx.cloudfront.net/1st-open-house-jan-2011.jpg ?AWSAccessKeyId=yyy
每当我尝试以这种格式(包括 AccessKey)轮询我的图像时,它似乎都可以工作。URL 中没有 AccessKey,nada。
这是否意味着,我必须在整个网站的每个图像请求中都包含该访问密钥?或者是否有任何其他方法可以在单个点预先验证请求,然后继续正常加载图像,减去 url 中的访问密钥?