Перейти до вмісту
Обрати мову:Українська

Перемикання сховища файлів

Kept зберігає файли (фото, чеки, документи) на томі даних (KEPT_STORAGE=local, типово) або в S3-сумісному бакеті (KEPT_STORAGE=s3 зі змінними KEPT_S3_*). Зміна лише KEPT_STORAGE нічого не переміщує: вже збережені файли залишаються там, де були, і Kept не може їх знайти. Переміщення — це копіювання.

Файли не змінюються після збереження, тож копіювання безпечно, поки працює Kept, і його можна повторювати: файл, який уже є в місці призначення з правильним хешем, пропускається.

  1. Додайте налаштування місця призначення поруч із поточними (для S3: KEPT_S3_BUCKET, KEPT_S3_ACCESS_KEY_ID, KEPT_S3_SECRET_ACCESS_KEY і, якщо потрібно, KEPT_S3_ENDPOINT, KEPT_S3_REGION, KEPT_S3_FORCE_PATH_STYLE), залишаючи KEPT_STORAGE як є.
  2. Копіюйте, поки Kept працює: kept admin storage copy --to s3 (або --to local). Кожен файл, на який посилається база даних, і його версії зі зміненим розміром копіюються, і перевіряється їхній SHA-256. --dry-run лише підраховує.
  3. Зупиніть Kept, і скопіюйте знову: копіюються лише файли, що з’явилися після цього.
  4. Встановіть KEPT_STORAGE на нове сховище та запустіть Kept.
  5. Перевірте: kept admin storage verify --store s3 перевіряє кожен файл, на який посилається база даних.

Старі файли залишаються там, де були; видаліть їх самостійно, коли будете задоволені.

  • Увімкніть версіонування бакета: зі сховищем S3 резервні копії не містять файли, а версіонування саме повертає видалений або перезаписаний файл (резервні копії).
  • Телефони отримують файли з бакета безпосередньо, через короткоживучі підписані посилання. Якщо сервер звертається до бакета за адресою, яку телефони не бачать (наприклад, усередині Compose), встановіть KEPT_S3_PUBLIC_ENDPOINT на ту, яку вони бачать.
  • Подавайте бакет зі свого власного імені хоста, а не Kept.