【发布时间】:2013-04-08 20:07:07
【问题描述】:
我刚开始使用 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 Doc page 中的 基本链接 部分说我可以访问我上传的 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 中的访问密钥?
【问题讨论】:
标签: php image amazon-web-services cdn amazon-cloudfront