Используем OneDrive для хостинга картинок
2016-09-08, 15:40 / ArgonХотя OneDrive и позволяет расшаривать картинки, но ссылки, которые он выдаёт
https://1drv.ms/i/s!Amlzj8iXNyRkiugA0LRoWwrT8JZO3g
…на самом деле ведут не на сам файл с картинкой, а на веб-страницу с ней.
Что делать, если нужно получить истинный адрес файла, который можно будет использовать для вставки картинок на веб-страницы, а также в других местах вроде фотографии контакта в Lync / Skype for Business? Доступ к картинке, конечно, должен быть без какой-либо аутентификации (анонимно).
Раньше эта задача решалась весьма нетривиально, требовалось выявлять ID картинки и ключ анонимного доступа. Теперь же достатоно просто использовтаь кнопку Embed, чтобы получить честный путь к файлу
https://fktm3w-bn1306.files.1drv.com/y3mtpruDZtS5-aEcza1IHBB3PQG2jJgmlDG3iRYYqOyXLt6QGQ7JDexYEd_22NBKQzXQvBXFzjxTrNzlhQMbquRle4kF1x1AUwgtp8LJr2zxuTdObDNSVOwewTjfmXdm9jCuxYvQQ26xjkyjKaNNnvNG6q3lN4qCQ-2LL8ca4C3WFw?width=180&height=120&cropmode=none
Если вы видите вставленную ниже картинку, значит этот функционал работает.
Хотя, стоп! Обратите внимание, что полученная картинка искажена и содержит артефакты сжатия JPEG, хотя источник был в PNG.
Ну вот, всё оказалось не так просто. Чтобы получить оригинальный файл без искажений, придётся использовать API OneDrive…
Из исходного адреса
https://1drv.ms/i/s!Amlzj8iXNyRkiugA0LRoWwrT8JZO3g
Берём строчку, начинающуюся с символов s! (это часть называется encodedUrl), и вставляем в следующий адрес
https://api.onedrive.com/v1.0/shares/{encodedUrl}/root/content
Получается
https://api.onedrive.com/v1.0/shares/s!Amlzj8iXNyRkiugA0LRoWwrT8JZO3g/root/content
Если вы видите вставленную ниже картинку, значит и этот функционал работает. И мы видим истинную картинку без искажений.
Предыдущие способы
Сохраняю их в этом посте только из жалости к уже потраченному времени на их поиск и описание.
Способ номер 2. Берём оригинальную ссылку
https://1drv.ms/i/s!Amlzj8iXNyRkiugA0LRoWwrT8JZO3g
Заходим по ней и нажимаем на View Original, видим картинку и (ужасающий) путь к ней в строке браузера
https://fktm3w-bn1306.files.1drv.com/y3pQcqH0DMvNvFzjCUFuECt5EHc3--psJ-7_qbXHTwXpxpWwVD49Wh1h2zY8XiHVqwhcozsTWBIb5LDgxWUC48JScj-rNESUHS6xIQM4MI190AV-iT56Q1si7vvx5eiiF9QhuhMttuIXkzk_SQSoibkOGO71aEddgJ09FE7VVDrZkg/arlogo_blog_180x120.png?psid=1
Если вы видите вставленную ниже картинку, значит и этот функционал работает. И мы видим истинную картинку без искажений. Однеако, не могу гарантировать что полученный URL — постоянный.
Способ номер 3. Выявил его в те дремучие времена, когда перечисленные выше способы не существовали.
Из исходного адреса
https://1drv.ms/i/s!Amlzj8iXNyRkiugA0LRoWwrT8JZO3g
С помощью сервиса hurl.it узнаем, куда же на самом деле мы будем перенаправлены
https://onedrive.live.com/redir?resid=64243797C88F7369!177152&authkey=!ANC0aFsK0_CWTt4&ithint=photo%2cjpg
Либо просто переходим браузером по изначальной ссылке, получаем адрес вида
https://onedrive.live.com/?authkey=%21ANC0aFsK0%5FCWTt4&cid=64243797C88F7369&id=64243797C88F7369%21177152&parId=64243797C88F7369%2113737&o=OneUp
В этих адресах нам нужны две вещи, идентификатор картинки и ключ доступа, они совпадают
resid=64243797C88F7369!177152
authkey=!ANC0aFsK0_CWTt4
С помощью этих данных конструируем новый URL вида
https://storage.live.com/Items/{resid}?authKey={authkey}
или
https://onedrive.live.com/download?resid={resid}&authkey={authkey}
В нашем случае это будет
https://storage.live.com/Items/64243797C88F7369!177152?authKey==!ANC0aFsK0_CWTt4
или
https://onedrive.live.com/download?resid=64243797C88F7369!177152&authkey=!ANC0aFsK0_CWTt4
Если вы видите картинки ниже, значит и эти способы ещё работают. И мы видим истинную картинку без искажений.
Рубрика | Разное |
---|---|
Опубликовано | 2016-09-08, 15:40; обновлено 2016-09-08, 18:52 |
Комментарии | Нет комментариев » | Лента комментариев RSS |
Ссылки | Постоянная ссылка | Обратная ссылка |