在aws S3上检查文件是图像还是xml

时间:2015-04-04 11:14:31

标签: php image amazon-s3

我需要离开以查看S3云上是否存在图像,我构建了一个APP来对从本地到网络的合并数据进行排序,它实际上很简单,我差不多完成了,来自本地应用程序我得到了一个json帖子......所以在json上我得到了一个图像名称" prety_image.jpg"然后保存到数据库,但在我保存之前我需要检查S3云中是否存在该图像,我有S3网址... //foo.cloudfront.net/并显示我所做的所有图像是添加图像的名称...因为我看到的是,如果图像确实存在,它显示图像..但如果图像不存在我得到一个xml文件

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>13A57760</RequestId>
<HostId>3/uj7Ro77bGnjzGZVABUXvVVg4=</HostId>
</Error>

所以我想要的是,如果我收到此错误,那么保存一张空白图片,如果没有,那么只需保存图片...但我不知道该怎么做...我没有&#39 ;使用aws sdk,我已下载,但我不知道如何处理它...我已经使用了其他SDK,但AWS SDK对我的大脑来说只是一个方法..

1 个答案:

答案 0 :(得分:0)

我找到了一个不使用AWS SDK的解决方案,实际上很简单...
这个功能在我班级里面,但我只是把它放在这里......

function httperr($url)
    {
        $headers = get_headers($url);
        return substr($headers[0], 9, 3);
    }

我只是这样称呼它

if (intval(httperr(S3AWS . $img)) === 200) {
    $image = '<img src="'.S3AWS . $img.'" > <br>- Exist';
} else {
    $image = 'No image here...';
}

S3AWS是网址,$ img只是图片的名称...所以如果标题是好200那么图像确实存在,如果没有那么没有图像,并且工作得很好......