Ограничение доступа к HLS-видео при помощи шифрования AES-128
Продолжение постов про хранение HLS-видео из Yandex.Cloud Object Storage.
Продолжение постов про хранение HLS-видео из Yandex.Cloud Object Storage.
Его нет. И вообще это плохая идея и вот почему.
В прошлой статье я рассказал, как и зачем хранить видео в формате HLS. Теперь стоит уточнить пару нюансов как правильно настроить раздачу этого контента.
Если вам нужно добавить на свой сайт видео, то может возникунуть вопрос где его хостить и как потом раздавать. В этом посте я постараюсь разобрать варианты и дать примеры использования Yandex.Cloud Object Storage.
Формат файла mp4 знаком наверное всем. Но стоит если мы хотим показывать видео на сайте эффективно стоит задуматься лучшее ли это решение для нашей задачи — просто выложить все видео одним mp4-файлом?
Часто нужно передать в функцию какой-то секрет. Например, ключ доступа в стороннее API. Его можно передать через переменные окружения, но в таком случае он будет храниться в открытом виде.
Пара примеров использования АПИ из Python
Скрипт для озвучивания длинного текста.
Как привязать свой домен к бакету в объектном хранилище Yandex Cloud.
Начнем с того, что набросаем небольшого тестового бота поверх фреймворка Telegraph.
К сожалению просто так взять и запустить приложение написанное на любом популярном node.js фреймворке у нас не выйдет. Эти фреймворки пишут ответ в http(s) сокет. Рантайм функций ожидает получить от пользовательского кода функции объект определенного содержания.
В первой части мы закончили на том, что запустили Apollo в облаке. Но это слишком простое API. Поэтому сейчас добавим интеграцию с Severless YDB.
Yandex Cloud Serverless Functions позволяют развертывать приложения в облаке не тратя время на администрирование серверов. Вы платите только за те ресурсы, которые ваше API потребляет обрабатывая запросы пользователей. Этот пост расскажет как развернуть Apollo Server 2 в Yandex Cloud Functions.
В предыдущих постах я рисовал пояснительные диаграммы в draw.io. Это крутой инструмент, но проблема в том, что если я заметил опечатку в картинке, то чтобы поправить ее мне нужно найти, где я сохранил эту диаграмму, поправить руками и перерендерить файл с диаграммой. Мне стало интересно можно ли делать по-другому.
И я нашел инструмент для декларативного описания диаграмм и их рендеринга. Была маленькая проблема, что там не было иконок для Yandex.Cloud. Но я это поправил.
UPD: Yandex Cloud представили новый runtime для функций — C#. Ну и мне тут же захотелось его попробовать. Поэтому я дописал реализацию этой функции еще и на csharp. https://github.com/nikolaymatrosov/yc-on-the-fly-thumbnailer-csharp/blob/master/OnTheFlyResize/Handler.cs
Как для сайта на Gatsby автоматизировать его выкладку в Объектное хранилище Яндекс Облака при помощи Github Actions.
UPD: Написал как делать thumbnail’ы на лету.
С появлением триггеров в Яндекс Облаке появилась возможность задавать действия описываемые serverless function на события в очереди или в объектном хранилище.
Upd: я дополнил пост расширенным примером применимом в облаке с большим количеством дисков. Также там добавлено удаление старых снепшотов.
Upd2: https://github.com/nikolaymatrosov/go-yc-serverless-snapshotЯ переписал пример на Go, так как в Облаке недавно появился рантайм для Go 1.14.
Upd3: Пример на Go обновлен для версии ратайма 1.16.
Upd 2022–01–08: Пример на для NodeJS переписан с использованием новой версии SDK v2. Код из поста ниже устарел.
Так как пока в Облаке отсутствует нативная возможность настроить создание снэпшотов по расписанию можно сделать эту функциональность из подручных средств.
Я поискал и не нашел гайда как из приложения на C# подключиться к managed базе данных PostgreSQL в Яндекс Облаке, поэтому решил сам написать небольшую иллюстрированную инструкцию.