2015-04-04 2 views
-1

Мне нужно прочь, чтобы увидеть, существует ли изображение в облаке S3, я создаю APP для сортировки данных слияния из локальной сети, это на самом деле простой и я почти сделал, из локального приложения я получаю сообщение json ... так что на этом json я получаю изображение «prety_image.jpg», которое затем сохраняется в БД, но прежде, чем я его сохраню, я нужно проверить, существует ли это изображение в облаке S3, у меня есть S3 url ... //foo.cloudfront.net/, и для отображения изображения все, что я делаю, это добавить имя изображения ... за то, что у меня есть видно, что если изображение действительно существует, то он отображает изображение .. но если изображение не существует Я получаю файл XML
Проверьте, является ли файл изображением или xml на aws S3

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

так что я хочу-й если я получаю эту ошибку, тогда сохраняю пустой образ, если нет, то просто сохраните изображение ... но я не знаю, как это сделать ... Я не использую aws sdk, я скачал, но я не знаю, я знаю, что с этим делать ... Я использую другие SDK, но AWS SDK - это просто способ для моего мозга.

ответ

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 - это url, а $ img - это просто имя изображения ... так что если заголовок в порядке 200, тогда изображение существует, если нет, тогда нет изображения, и он работает нормально. .

Смежные вопросы