Черновик заметки про яндекс.диск
This commit is contained in:
parent
4f60d01280
commit
8f0d5be92c
62
source/_articles/2019-08-08-yandex-disk-image-hosting.md
Normal file
62
source/_articles/2019-08-08-yandex-disk-image-hosting.md
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
---
|
||||||
|
title: Яндекс.Диск как хостинг картинок
|
||||||
|
description: Использование возможностей Яндекс.Диска для хостинга картинок
|
||||||
|
keywords: [яндекс.диск, хостинг картинок, yandex disk, image hosting, hosting]
|
||||||
|
---
|
||||||
|
|
||||||
|
# Яндекс.Диск как хостинг картинок
|
||||||
|
|
||||||
|
Я искал простой и надежный хостинг картинок для блога. Чтобы хранил картинки
|
||||||
|
годами, давал прямые ссылки и не закрылся в течение хотя бы пары лет.
|
||||||
|
|
||||||
|
Раньше я использовал в качестве хостинга фотографий для блога сервис
|
||||||
|
Яндекс.Фотки. С его помощью можно было получить картинки разных разрешений
|
||||||
|
для адаптивной верстки. Сервис работал уже продолжительно время, у него была
|
||||||
|
большая аудитория, им было удобно пользоваться.
|
||||||
|
|
||||||
|
Но в один момент Яндекс решил закрыть сервис. Вместо него появился Яндекс.Диск,
|
||||||
|
а фотоальбомы теперь были представлены в виде коллекций. Так же просто как
|
||||||
|
раньше уже было не получить прямых ссылок на загруженные фотки.
|
||||||
|
|
||||||
|
Яндекс.Диском я пользовался и до этого. Я знал, что он поддерживает
|
||||||
|
протокол WebDav. Это удобный протокол, с помощью которого можно подключить Диск
|
||||||
|
в виде жесткого диска себе в систему.
|
||||||
|
|
||||||
|
Одним из первых вариантов было написать прокси для того, чтобы использовать
|
||||||
|
именно WebDav и проксировать к нему запросы. У меня был бы web-server,
|
||||||
|
который принимал бы http-запросы и направлял их Диску.
|
||||||
|
|
||||||
|
С этой мыслью я и пошел читать документацию к Яндекс.Диску. И в самом конце
|
||||||
|
наше жемчужину. Оказывается, именно для изображений Диск умеет создавать
|
||||||
|
превью. Можно просто передать нужное разрешений и диск отдаст картинку.
|
||||||
|
|
||||||
|
Это было то, что нужно. Но для публичного использования было одно препятствие.
|
||||||
|
Для доступа к данным нужно авторизоваться. Делается это с помощью http-заголовка
|
||||||
|
`Authorization`.
|
||||||
|
|
||||||
|
Получалось, что все равно нужен прокси, чтобы скрыть авторизационные данные.
|
||||||
|
Прокрутив решения с отдельным приложением, которое бы подставляло в
|
||||||
|
запросы заголовок `Authorization`, я вспомнил о сервере [Caddy](caddy).
|
||||||
|
С его помощью прокси настраивается буквально в три строки.
|
||||||
|
|
||||||
|
```
|
||||||
|
preview.vakhrushev.me {
|
||||||
|
proxy /img https://webdav.yandex.ru {
|
||||||
|
transparent
|
||||||
|
header_upstream User-Agent "yandex-disk-previewer/1.0"
|
||||||
|
header_upstream Authorization "Basic {{ (yandex_disk.login ~ ':' ~ yandex_disk.password) | b64encode }}"
|
||||||
|
}
|
||||||
|
|
||||||
|
tls anwinged@ya.ru
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Данные авторизации я поместил в хранилище Ansible Vault и подставляю
|
||||||
|
при развертывании конфигурации на свой сервер. Также настройка прокси
|
||||||
|
ограничивает директории, к которым можно получить доступ.
|
||||||
|
Так как на Яндекс.Диске у меня хранятся и личные данные.
|
||||||
|
|
||||||
|
[ya-disk](https://disk.yandex.ru)
|
||||||
|
[ya-api](https://yandex.ru/dev/disk/doc/dg/concepts/quickstart-docpage/)
|
||||||
|
[ya-api-preview](https://yandex.ru/dev/disk/doc/dg/reference/preview-docpage/)
|
||||||
|
[caddy](https://caddyserver.com/)
|
Loading…
Reference in New Issue
Block a user