Завантаження файлів
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
1. Контекст
Збереження файлів в Дата Фабриці відбувається за принципом id reference де безпосередньо файл зберігається в "бакеті" Ceph, а ключ файлу і його контрольна сума в реляційній БД реєстру.
2. Взаємодія з Low Code
Читання та повернення файлів в систему Low-Code відбувається за рахунок читання або запису файлу в доступний для Low-Code "бакет" Ceph.
3. Моделювання
Для збереження файлів в Дата Фабриці передбачено спеціальний тип "file". Такий запис дозволяє зберігати один файл, будь якого, формату (архів, багато сторінковий документ, картинку).
<changeSet id="..." author="...">
<createTable tableName="...">
<column name="id" type="uuid" defaultValue="uuid_generate_v4()"/>
<constraints primaryKey="true" nullable="false"/>
</column>
...
<column name="scan_copy" type="file"/>
...
<column name="..." type="..."/>
</createTable>
</changeSet>
4. Операції з файлами
4.1. Зміна структур які містять файли
Зміна безпосередньо файлів в Дата Фабриці заборонена. Кожна нова версія файлу зберігається в БД з новим унікальним ключем. Всі додані файли зберігаються в "бакеті" Ceph для підтримки історичності даних.
Зміна версії файлу можлива лише при умові отримання запиту "update" або "partialUpdate" з ключем відмінним від існуючого.
У випадку отримання пустого ключа посилання на Ceph - посилання буде видалено разом з контрольною сумою, але безпосередньо файл залишиться збережений.
4.2. Повернення файлу
Для повернення файлу з Дата Фабрики використовується той самий принцип, повертається ключ до об’єкту файлу в структурі частиною якої є файл. У разі якщо файл з таким ключем існує в "бакеті" Low-Code то цей файл переписується.