Как сохранять медиафайлы с Tilda в облако? Пошаговая инструкция
![72fc2bb842afdb2ac5c9817dd89ebd44.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/72f/c2b/b84/72fc2bb842afdb2ac5c9817dd89ebd44.png)
Если вы работали с Tilda, то наверняка задумывались, где хранить изображения, видео, и прочие файлы. Если использовать серверы CMS и Tilda, то в тарифных планах сталкиваемся с ограничениями на вес данных. Вдобавок хранение больших медиафайлов негативно сказывается на ресурсах — сайт загружается медленнее. Как избежать этих проблем? Оптимальное решение — использовать S3, ведь объектное хранилище позволяет улучшить производительность и легко масштабируется.
Привет! Меня зовут Наташа, я менеджер в Selectel. Сегодня расскажу, как интегрировать сайт на Tilda с S3-хранилищем для оптимизации хранения и доставки файлов. Подробности под катом!
Знакомство с проектом
Мы с друзьями и по совместительству продуктовыми менеджерами заметили, что в их стартапе слишком много времени уходит на рутинные задачи. Решили сделать небольшой no-code инструмент, который позволит минимизироваровать ручной труд.
У нас получился сайт-визитка (он на КДПВ этой статьи) с подключенными no-code сервисами. Они упростили расчеты приоритетов задач, заполнение бизнес-документации и информирование о новых запросах в техническую команду.
На сайте собираем форму заявки на разработку новых функций технической командой. В ней можно указать контекст задачи, описание, ценность для проекта, сроки, к которым нужна реализация, и скриншоты или изображения. Последние нужны для большего контекста.
![6c8166264920d97fc628fa735999bd9f.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/6c8/166/264/6c8166264920d97fc628fa735999bd9f.png)
Форма заявки.
![oc2p7egxfswgdcnzdsqi16jqtlq.png](https://habrastorage.org/r/w1560/webt/oc/2p/7e/oc2p7egxfswgdcnzdsqi16jqtlq.png)
Создание S3 для хранения изображений
Мы решили разместить графические файлы на аккаунте Selectel, где находился проект стартапа.
1. Создадим контейнер. В панели управления заходим во вкладку Объектное хранилище →Создать контейнер. Имя задаем любое, в нашем случае — tildalinks-sm. Тип контейнера выбираем Публичный, чтобы он был доступен без авторизации.
Класс хранения — Стандартное. Стандартное хранилище подходит для раздачи статического контента и других данных, к которым нужен быстрый доступ. Например, медиаконтент, материалы с сайтов, документы, письма. Это наш вариант.
В поле Адресация оставили параметр Virtual-Hosted включенным, но для проекта тип адресации не важен. Нажимаем Создать контейнер.
![f4ae9f8d68aa1a91f9c09de3d0f7618b.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/f4a/e9f/8d6/f4ae9f8d68aa1a91f9c09de3d0f7618b.png)
Создание контейнера.
![b5ac43b41dc20b9698afe27f9fb741f1.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/b5a/c43/b41/b5ac43b41dc20b9698afe27f9fb741f1.png)
Созданный контейнер в панели управления.
2. Настроим права доступа к контейнеру, чтобы Tilda могла получать доступ к файлам.
Перейдем на вкладку Управление доступом и создадим нового пользователя, нажав на кнопку Добавить пользователя.
![35488c82228bc6ef3b5ff71d5c5551e2.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/354/88c/822/35488c82228bc6ef3b5ff71d5c5551e2.png)
Создание пользователя.
Тип — Сервисный пользователь. В поле Роль выберем Администратор аккаунта.
![7c328eb740c12a93235acc5628341322.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/7c3/28e/b74/7c328eb740c12a93235acc5628341322.png)
Выбор роли.
3. Получим S3 ключи для созданного пользователя. Для этого во вкладке Управление пользователями выберем созданного и в поле S3 ключи нажмем Добавить ключ.
![360a182f39d13b7a32978d19b5e582d4.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/360/a18/2f3/360a182f39d13b7a32978d19b5e582d4.png)
Управление доступом.
В окне Добавление S3 ключа выбираем наш проект и нажимаем Сгенерировать.
![50888fab9d7eee4a1a105a4b4fdd9f49.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/508/88f/ab9/50888fab9d7eee4a1a105a4b4fdd9f49.png)
Окно добавления S3 ключа.
Полученные Access key и Secret key следует сохранить. Они доступны для просмотра только один раз.
![657e7d196459044f8ebda5994820521e.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/657/e7d/196/657e7d196459044f8ebda5994820521e.png)
Полученные ключи.
Интеграция Tilda и S3
Подключаем S3-хранилище в форму на Tilda, где мы хотим собирать скриншоты наших стейкхолдеров. Было решено, что изображения, графические схемы и скриншоты у нас станут частью заявки на функциональность, так что добавили возможность загрузить файл в форму BF204N (прием данных из формы).
![7de9d8d2dadf4542fb3092272d1a80f3.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/7de/9d8/d2d/7de9d8d2dadf4542fb3092272d1a80f3.png)
Форма Tilda BF204N.
Далее настроим поле для работы с файлами.
- В поле ввода с типом file для подключения S3-хранилища следует корректно заполнить TILDA UPLOAD WIDGET KEY. В настройках есть подсказка — переходим по ссылке Получить ключ. Далее будет доступна подробная инструкция по подключению объектного хранилища. Из списка сервисов выбираем Selectel.
![b0c81079d21fffe359b99680c77ab217.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/b0c/810/79d/b0c81079d21fffe359b99680c77ab217.png)
Поле типа file.
![b1697b1da534398e3840b7e23cbc9071.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/b16/97b/1da/b1697b1da534398e3840b7e23cbc9071.png)
Выбор сервиса хранения.
- По инструкции добавляем данные для доступа к S3. Вводим сохраненные Access и Secret ключи, а также тип контейнера и его название. Для публичного контейнера следует скопировать публичный домен в его настройках, а для приватного — ID проекта.
![8aa7dc30a6e25d2c6738d9ec975f2445.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/8aa/7dc/30a/8aa7dc30a6e25d2c6738d9ec975f2445.png)
- После сохранения настроек появится TILDA UPLOAD WIDGET KEY. Его значение нужно скопировать и добавить поле с типом file в форму BF204N на сайте.
![9288788dcf2a33a3dbf812a8d272ca4e.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/928/878/8dc/9288788dcf2a33a3dbf812a8d272ca4e.png)
Обратите внимание: при сохранении настроек доступа автотесты Tilda должны работать корректно.
![48a7ddf908ca4c589b701cd481676d5b.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/48a/7dd/f90/48a7ddf908ca4c589b701cd481676d5b.png)
Успешный тест на странице настройки сервиса S3 в Tilda.
3. Тестируем и публикуем. После подключения S3 важно протестировать работу сайта и убедиться, что все файлы загружаются корректно. Проверить их можно на стороне провайдера, если используется публичный контейнер.
![2cbd5c6532c8b7e30dbdb202a12713f1.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/2cb/d5c/653/2cbd5c6532c8b7e30dbdb202a12713f1.png)
Ссылка на файл в S3.
Проверить работу ссылок можно в рамках сайта на Tilda после заполнения формы заявки. Это касается любого контейнера, в том числе приватного. На главной странице проекта есть лог действий, где фиксируется отправка файлов в хранилище провайдера.
![4fea06128f55710b76a3177395dc79b6.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/4fe/a06/128/4fea06128f55710b76a3177395dc79b6.png)
Лог заявок в Tilda.
![a18b80b976ee6c14afd1627ebff21392.png](https://habrastorage.org/r/w1560/getpro/habr/post_images/a18/b80/b97/a18b80b976ee6c14afd1627ebff21392.png)
Детали заполненной заявки в логе в Tilda.
Мы проверили все стыки сайта и провайдера, убедились в работоспособности ссылок и в корректной автоматизации. После успешного тестирования можно публиковать сайт и радоваться его работе. В дальнейшем файлы из формы мы использовали в поставке технических задач для разработчиков и в документации проекта.
Заключение
Помните: кроме переноса медиафайлов на сторону провайдера нужно их оптимизировать. Вес файлов должен быть минимальным без потери качества. Если форму одновременно будет заполнять много пользователей, то скорость загрузки данных будет играть важную роль. Также это поможет значительно сэкономить место в контейнере при большой нагрузке.
Если в проекте планируется массовое использование изображений, есть смысл рассмотреть CDN. Для нашего стартапа это не очень актуально.
Интеграция сайта на Tilda с объектным хранилищем — это эффективный способ повысить производительность, масштабируемость и безопасность вашего сайта. Следуйте этой инструкции, чтобы легко подключить S3-хранилище и пользоваться его преимуществами!