Завантаження файлів

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Контекст

file upload.drawio

Збереження файлів в Дата Фабриці відбувається за принципом 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 то цей файл переписується.