Хранение файлов в хранилище S3
Среди интеграций Домопланера есть Хранение файлов S3.
Эта интеграция добавляет в Домопланер возможность загружать файлы и хранить их в любом сервисе или вашем сервере, поддерживающем технологию S3, например Yandex Cloud или Selectel.
S3 (Simple Storage Service) – это облачное объектное хранилище, разработанное Amazon Web Services (AWS) для хранения данных в виде объектов. Подробнее об этом в статье. S3 поддерживают многие сервисы. Кроме того, есть большое количество готовых решений для развертывания хранения файлов на своем сервере.
Что нужно для настройки интеграции
Для настройки интеграции нужно всего 4 параметра:
1) Endpoint – адрес сервера, на котором настроена работа с S3
2) Bucket – условно каталог, в котором будут хранится файлы
3) Access key – ключ для доступа к функциям загрузки и чтения
4) Secret key – вторая часть ключа для доступа
Все эти параметры можно получить через сервис, который предоставляет хранилище. Подробнее в статьях:
– Настройка Yandex Cloud
– Настройка Selectel
Укажите все параметры в поля внутри интеграции, после обязательно сохраните.
После сохранения станет доступна функция загрузки файлов.
Работа с файлами из клиента и сделки
В карточке клиента появляется пункт "Файлы (3)", при клике на который вы увидите все файлы, которые привязаны к конкретному клиенту.
В момент открытия карточки Домопланер отправляет запрос на хранилище, в котором передает ID клиента. Если к этому клиенту есть файлы, то они отобразятся перед вами.
Каждый файл отображается в виде панельки, на которой указаны
– название файла и его расширение
– дата загрузки файла, при наведении покажет того, кто загрузил
– размер файла
– кнопка удаления файла
По клику на файл от откроется в новой вкладке (если это изображение) или скачается к вам на компьютер. Ссылка на файл защищена авторизацией – файл доступен только пользователям из вашего аккаунта, у которых есть доступ к просмотру файлов.
Кнопка удаления перемещает файл в корзину на 90 дней. Если по истечению этого срока файл остается в корзине, то он автоматически удалится безвозвратно.
После загрузки или удаления файла информация об этом действии транслируется в ленту событий по клиенту: видно кто и когда удалил или загрузил новый файл.
––––––
В сделках данная интеграция работает аналогично.
Единственное отличие – в сделке вы видите в разделе файлов сразу файлы сделки и файлы по клиенту одновременно.

Загрузка файлов в ленту событий
В ленте событий по клиенту, сделке, задаче, агенту или агентству у поля ввода комментария есть кнопка с изображением скрепки. По клику на эту кнопку откроется окно выбора файлов, которые прикрепятся к комментарию.
После отправки в ленте событий появится комментарий с указанным текстом и прикрепленными файлами. Файлы скачаются по клику на их название.
Структура хранения файлов
В указанном бакете мы храним файлы в следующей структуре:
1) Первый уровень – папка с названием, равным ID аккаунта застройщика внутри Домолпанера, например "413". Это позволяет в одном объектном хранилище собирать информацию сразу из нескольких аккаунтов (актуально для групп компаний или мультирегиональных застройщиков)
2) Второй уровень – папки по сущностям. "1" – клиенты, "2" – сделки, "3" – задачи, "4" – агентства, "5" – агенты. В каждой папке хранятся данные по сущностям.
3) Третий уровень – папка, в названии у которой указан ID сущности. Например, папка "149382" означает, что внутри нее хранятся файлы по клиенту с ID="149382" из Домопланера.
4) Четверый уровень – непосредственно файлы. Название файлов состоит из 32-символьной строки (sid – строковый ID) и расширения файла. Например, "nk3xwu0lpef1no4clk4dzpqjfqerdplc.png"
Путь к файлу в таком случае будет:
413 / 1 / 149382 / nk3xwu0lpef1no4clk4dzpqjfqerdplc.png
На четвертом уровне хранится папка comments, которая содержит в себе файлы, которые были загружены в ленту событий указанной сущности.
Например, если у застройщика "413" в ленту событий клиента с ID="149382" был загружен файл в комментарий с "nk3xwu0lpef1no4clk4dzpqjfqerdplc.png", то путь к таком файлу будет такой:
413 / 1 / 149382 / comments / nk3xwu0lpef1no4clk4dzpqjfqerdplc.png
Данные по файлам хранятся в отдельной mysql-таблице "files".
Таблица доступна для эспорта. Настроить можно через техническую поддержку.