» » » Получаем ссылку на изображение из Yandex.Disk [PHP+CURL]

Получаем ссылку на изображение из Yandex.Disk [PHP+CURL]

Получаем ссылку на изображение из Yandex.Disk [PHP+CURL]

 

Небольшой кусочек PHP кода(сниппет), который позволяет получить превью изображение по ссылке из Яндекс.Диск. Сперва нужно расшарить (поделиться) картинкой из своего янекс диска, для этого можете использовать, размещённый ранее скрипт публикации файлов
Главным в этой всей каше выступает ссылка на файл, выглядит она так: 
https://yadi.sk/i/sYFk9RnOWQgrJ
Её то мы и подставляем в скрипт для получения превьюшки.

<?php
	    $curl = curl_init('https://yadi.sk/i/sYFk9RnOWQgrJ'); //расшаренная ссылка на картинку
	        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	        $result = curl_exec($curl);
	        
	        @preg_match('#<img class="content__image" src="(.*?)"#si', $result, $matches);
	    echo ($matches[1]);    
	?>
 
Полученный линк на превью картинки имеет следующий вид:
https://downloader-kiev1.disk.yandex.com/rpreview/c37cf3b3a8a5be84176dd8710d07bee3/mpfs/fbYwYR15oQMEYIh2qpQ7-JudiUTiBsYAkVjbnmZy6n4JfC22TXBTpojaeb-FDS42vR2bI3tVQptipmLife41lg==?uid=0&filename=hd07jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&size=XXL&crop=0&rtoken=919c6ebb551f7e49c3b69b39a2328005&rtimestamp=53c130f1&force_default=no
 
Ссылка на изображение, изъятая таким методом, успешно открывается у всех пользователей. Срок жизни картинки пока неизвестен.
Пробуйте, отписывайтесь.
[12 июля 2014 12:02] VitalyChuyakov:
Полезная штука.
Вопрос: а как получить прямую ссылку на оригинал картинки?
Что-бы в итоге Я.Диск можно было использовать как хостинг-картинок для блога.
[12 июля 2014 16:02] pur1tan:
Как и для файлов, прямую ссыль можно получить, только работать она будет исключительно для IP получившего. Других пользователей будет перенаправлять на страницу скачивания Яндекс диска. Так что приходится довольствоваться первьюшками(
[13 июля 2014 14:52] dmuradz:
https://github.com/DEN007/Yandex.Disk-FULL-API можно пользоваться этим классом, там есть метод get() им можно контент фотографии получать
[13 июля 2014 15:20] pur1tan:
Класс полезный, спору нет. Но...
Метод get() мы получаем содержимое файла (в данной ситуации картинки) в буфер. Если выводить картинки в режиме постоянной подгрузки от я.диска - снижается скорость и повышается нагрузка на сервер. Можно попробовать подгружать и на время помещать в кеш, нагрузку уменьшим но будем активно задействовать файл. систему.



Вопрос немножко другой - необходимо один раз получить ссылку на изображение и тем самым переложить отдачу картинку напрямую яндекс диску.