Php 确认AmazonS3服务器上存在映像——CURL或fsockopen

Php 确认AmazonS3服务器上存在映像——CURL或fsockopen,php,curl,amazon-s3,file-get-contents,fsockopen,Php,Curl,Amazon S3,File Get Contents,Fsockopen,我有一些代码已经检查了远程服务器上是否存在映像文件。使用CURL或Fsockopen应该很简单,但我有一个问题 例如,考虑这个URL: 此服务器上的HTTP头如下所示: HTTP/1.1 200 OK Accept-Ranges: bytes Cache-Control: max-age=31536000 Content-Type: image/jpeg Date: Mon, 17 Sep 2012 08:10:59 GMT ETag: "31d93cdf91def38bcdbd7078680

我有一些代码已经检查了远程服务器上是否存在映像文件。使用CURL或Fsockopen应该很简单,但我有一个问题

例如,考虑这个URL:

此服务器上的HTTP头如下所示:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=31536000
Content-Type: image/jpeg
Date: Mon, 17 Sep 2012 08:10:59 GMT
ETag: "31d93cdf91def38bcdbd70786805ba2a"
Expires: Tue, 17 Sep 2013 08:10:59 GMT
Last-Modified: Mon, 17 Sep 2012 05:27:21 GMT
Server: ECS (dfw/56F1)
x-amz-id-2: Lr9D66o3dW5NN15dXhh04MSKIrwqugtFH51g8XoloI+7tItd2ITxJp3KDhVpKWm5
x-amz-request-id: 4F9888DFA41E82C6
X-Cache: HIT
Content-Length: 168738
然而,实际页面返回以下内容:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>3AB3633B5D289688</RequestId>
<HostId>
/FOF1nsbJ6slumpg2YHnhV5L+j12z3U/fp5coyi/BGG8JRT3nAtPrCHcIV3p3B0Z
</HostId>
</Error>
我认为只获取URL的内容就足够了,但无论我使用CURL、fsockopen还是file\u get\u内容,实际内容都是一些二进制垃圾。然而,将浏览器指向该URL向我展示了一些来自Amazon S3的XML,我想Pinterest就是这么用的

那么,问题:关于如何从现在打印为二进制垃圾的响应体中检查是否存在AccessDenied消息,有什么提示吗

以下是我正在使用的代码:


谢谢

使用您的链接时,我没有收到任何XML文件。相反,我得到的图片是我认为的二进制垃圾。奇怪。这就是我所看到的:-在MacOSX山狮上。在Chrome、Safari、Firefox中也是一样。也许你的IP被禁止了或者类似的东西?这就是我看到的,我想你的剧本也是。