Хранение двоичных данных
Реквизиты, которые вы добавляете элементам проекта, могут быть предназначены для хранения двоичных данных: файлов документов, изображений, видео и т. д. Такие реквизиты имеют тип ДвоичныйОбъект.Ссылка
.
Особенность двоичных данных заключается в том, что они, как правило, имеют большой размер, что может влиять на производительность приложения. По этой причине «1С:Шина» не хранит двоичные данные в тех же таблицах базы данных, что и остальные реквизиты. Для хранения двоичных данных «Шина» использует специальные хранилища, которые должны быть заранее настроены администратором сервера. Непосредственно в реквизите хранится только ссылка на двоичные данные в этих хранилищах.
Хранилища двоичных данных
Сервер поддерживает два типа хранилищ:
- Файловое — данные хранятся в локальном или сетевом каталоге на диске;
- S3 — данные хранятся в сервисе, совместимом с Amazon S3, например:
- Yandex Object Storage;
- VK Cloud Solutions Storage;
- MinIO — локальный S3-сервер.
Сервер для каждого приложения стандартно создает одно локальное файловое хранилище двоичных данных. Для оптимизации ресурсов можно добавлять к серверу дополнительные хранилища и подключать их к приложениям.
Чтобы облегчить просмотр всех хранилищ, в списке Инфраструктура ⟶ Объектные хранилища все стандартные файловые хранилища, созданные «1С:Шиной» для каждого приложения, отображаются в виде одной обобщенной строки.
Правила использования хранилища и свойства данных
Администратор для каждого хранилища описывает набор правил. Разработчик в своих алгоритмах загрузки двоичных данных задает свойства загружаемых данных. «1С:Шина» помещает двоичные данные в то хранилище, правилам которого удовлетворяют свойства двоичных данных (подробнее).
В процессе эксплуатации сервера администратор может менять набор хранилищ, может изменять их правила. После этого он может выполнить реорганизацию двоичных данных (вручную или по расписанию), при которой «Шина» заново сопоставит свойства данных и правила хранилищ и переместит экземпляры двоичных данных в оптимальные хранилища.
Установка свойств двоичных данных
На сервере вы можете установить свойства двоичных данных непосредственно перед их загрузкой в хранилище. Например:
знч ВременныеФайлы = новый ДвоичныйОбъект.Свойства("temp")
.Временные()
знч РезервныеКопии = новый ДвоичныйОбъект.Свойства("backup")
.РедкийДоступ()
.Конфиденциальность(ДвоичныйОбъект.Конфиденциальность.Конфиденциальный)
.НадежностьХранилища(ДвоичныйОбъект.НадежностьХранилища.Средняя)
На клиенте перед загрузкой в хранилище установка свойств двоичных данных невозможна. Но после того, как данные загружены, вы можете перейти на сервер и изменить свойства уже загруженных данных.
Например, в переменной ДанныеСсылка вы имеете ссылку на загруженные двоичные данные (ДвоичныйОбъект.Ссылка
):
знч ВременныеФайлы =