Раздача файлов
Файлы отдаются по трём адресам — в зависимости от того, кому и насколько долго их можно видеть.
Три канала
/o/o/{bucketId}/{id} — без авторизации, только для публичных файлов.
/p/p/{id} — с токеном бакета, достаточно BASIC. Для любого файла.
/t/t/{token} — подписанная временная ссылка со сроком.
Готовые адреса приходят в ответе на загрузку: publicUrl и privateUrl. Строятся они
от PUBLIC_BASE_URL, если он задан.
# публичный
curl -O https://s5.example.com/o/<bucketId>/<id>
# по токену
curl -O -H "Authorization: Bearer <токен>" https://s5.example.com/p/<id>Скачать, а не открыть
Картинки, видео, аудио, PDF и простой текст по умолчанию открываются в браузере
(inline), всё остальное — скачивается. SVG и HTML всегда скачиваются: показанные
браузером, они могли бы выполнить скрипт от имени вашего домена.
Чтобы браузер сохранил и то, что умеет показать, добавьте ?download=1:
https://s5.example.com/o/<bucketId>/<id>?download=1У временной ссылки это задаётся при выдаче — полем disposition.
Готово к CDN
Все три канала поддерживают:
Range— докачка и перемотка видео (206 Partial Content; за пределами файла —416). Исключение — временная ссылка с лимитом скачиваний: она отдаёт файл только целиком;ETagи условные запросы —If-None-Matchотвечает304, если файл не менялся;Cache-Control— по политике кэша бакета и папки.
Трафик
Каждая отдача учитывается в статистике бакета: объём, приём и число запросов по дням. Счётчики сбрасываются в базу каждые 20 секунд.