如何使用PHP + CURL检索S3托管的图像而不获取SignatureDoesNotMatch?

时间:2011-02-08 02:24:53

标签: php curl amazon-s3

我有一个由PHP管理的网站,它通过RSS源从Posterous博客中提取内容。在这个Feed中是带有Posterous URL的图像,但是当我检索它们时,它们会重定向到Amazon S3 URL。

在php中我使用curl尝试拉取图像并在本地缓存它们,使用PHP的CURL手册页中的代码:http://www.php.net/manual/en/ref.curl.php#93163逐字。它在某些时候处理重定向到S3,但不可预测的是,它将返回一个带有SignatureDoesNotMatch错误的XML文件而不是检索图像。

是什么原因引起的?我该怎么做才能防止错误?

2 个答案:

答案 0 :(得分:1)

如果故障是间歇性的,则可能与文件(密钥)名称有关。常见的罪魁祸首是文件名中的空格。

您需要对网址进行编码或用%20

替换空格

答案 1 :(得分:0)

据我所知,SignatureDoesNotMatch是您无权访问资源时遇到的错误。你提供必要的证件吗?