Отримайте необмежену ємність безкоштовно на 30 днів!Зареєструйте безкоштовний акаунт та почніть синхронізацію сьогодні. Кредитна картка не потрібна.Зареєструватися →
GodwitGodwit Sync
ГоловнаЦіниЗавантаженняДокументація
Кабінет клієнтаПочати
Почати
Довідник хуків

Хуки та вебхуки

Запускайте shell-команди на етапах життєвого циклу синхронізації та після завершення обробки об'єктів. Надсилайте один JSON-звіт про запуск на кожен налаштований вебхук.

Хуки життєвого циклу

Хуки життєвого циклу огортають команду sync. Хук start є блокувальним. Хуки success, error і finally виконуються за принципом best-effort.

godwit sync \
  --source ./data \
  --destination ./backup \
  --on-start "./hooks/check.sh" \
  --on-success "./hooks/complete.sh" \
  --on-error "./hooks/failed.sh" \
  --on-finally "./hooks/cleanup.sh"
ПрапорецьКлюч конфігураціїПоведінка
--on-starthooks.on_startВиконується перед синхронізацією. Ненульовий код виходу зупиняє запуск.
--on-successhooks.on_successВиконується після того, як синхронізація завершилася без помилки. Успішний запуск лише з плануванням повідомляє статус planned.
--on-errorhooks.on_errorВиконується після того, як синхронізація повернула помилку. Збій хука не замінює помилку синхронізації.
--on-finallyhooks.on_finallyВиконується після того, як операція синхронізації завершилася успіхом або помилкою. Не виконується, якщо --on-start перервав роботу до початку синхронізації. Збій хука не змінює код виходу процесу.

Godwit Sync викликає командні хуки через sh в Unix і cmd у Windows. Вивід хука надсилається до стандартного потоку помилок.

Змінні середовища життєвого циклу

Командні хуки отримують метадані запуску через змінні середовища GODWIT_*. Статистика встановлюється для фаз success, error і finally.

ЗміннаЗначення
GODWIT_PHASEstart, success, error, finally або object
GODWIT_RUN_IDІдентифікатор поточного запуску
GODWIT_STATUSПорожній на старті; completed, failed або planned після операції
GODWIT_SOURCEURI джерела
GODWIT_DESTINATIONURI призначення
GODWIT_OBJECTS_TOTALКількість об'єктів у знімку запуску
GODWIT_OBJECTS_TRANSFERREDУспішно перенесені об'єкти
GODWIT_OBJECTS_SKIPPEDПропущені об'єкти
GODWIT_OBJECTS_FAILEDОб'єкти з помилками
GODWIT_BYTES_TRANSFERREDПеренесені байти без урахування байтів із помилками
GODWIT_DURATION_SECONDSВитрачений час у секундах як десяткове значення
GODWIT_ERRORТекст помилки синхронізації у фазі error

Хуки на рівні об'єкта

--on-key спрацьовує після завершених і невдалих задач перенесення. Пропущені та виключені об'єкти не викликають цей хук.

godwit sync \
  --source ./data \
  --destination ./backup \
  --on-key "./hooks/index-object.sh"
ЗміннаЗначення
GODWIT_KEYКлюч об'єкта
GODWIT_SIZEРозмір об'єкта в байтах
GODWIT_VERSION_IDІдентифікатор версії S3, якщо задача-джерело його містить; інакше не встановлено
GODWIT_STATUScompleted або failed
GODWIT_ERRORТекст помилки об'єкта для невдалих задач; інакше не встановлено

Команди на рівні об'єкта виконуються синхронно в горутинах робітників перенесення. Повільні команди знижують пропускну здатність. Збої команд обробляються за принципом best-effort і не призводять до збою перенесення.

Сповіщення через вебхуки

Повторюйте --notify, щоб надсилати підсумок завершеного запуску методом POST на кілька HTTP-ендпоінтів. Корисне навантаження містить поле text, сумісне зі Slack, і структуровані поля.

godwit sync \
  --source ./data \
  --destination ./backup \
  --notify https://hooks.example.com/godwit \
  --notify https://monitoring.example.com/runs

Корисне навантаження

{
  "text": "Godwit run `daily-backup` completed: 142 objects (5.0 GiB) transferred in 47s, 0 failures",
  "run_id": "daily-backup",
  "status": "completed",
  "source": "./data",
  "destination": "./backup",
  "objects_total": 142,
  "objects_transferred": 142,
  "objects_skipped": 0,
  "objects_failed": 0,
  "bytes_transferred": 5368709120,
  "duration_seconds": 47.3,
  "finished_at": "2026-07-22T14:22:01Z"
}
ВластивістьПоведінка
НадсиланняЛише завершальні фази success або error. Фази start, finally та object не надсилають вебхуків. Переривання хуком start не надсилає вебхука.
Тайм-аут10 секунд на кожен HTTP-запит.
Повторна спробаОдна повторна спроба через 2 секунди для транспортних помилок і HTTP 5xx. Для HTTP 4xx повтор не виконується.
Кілька URLURL обробляються послідовно.
Збій доставкиЖурналюється як hook_failed. Збій доставки не змінює код виходу синхронізації.

Посібники з налаштування

Slack
Надсилайте підсумок запуску до каналу Slack через вхідний вебхук.
Налаштувати сповіщення Slack
Discord
Надсилайте підсумок запуску до каналу Discord через його вебхук-ендпоінт, сумісний зі Slack.
Налаштувати сповіщення Discord

Конфігурація YAML

Секція hooks напряму відповідає прапорцям хуків команди sync.

source:
  url: ./data
destination:
  url: ./backup
hooks:
  on_start: ./hooks/check.sh
  on_success: ./hooks/complete.sh
  on_error: ./hooks/failed.sh
  on_finally: ./hooks/cleanup.sh
  on_key: ./hooks/index-object.sh
  notify:
    - https://hooks.example.com/godwit

Явно вказаний прапорець хука в CLI замінює відповідне значення з конфігурації. Явно вказаний список --notify замінює hooks.notify.

На цій сторінці

  • Хуки життєвого циклу
  • Змінні середовища життєвого циклу
  • Хуки на рівні об'єкта
  • Сповіщення через вебхуки
  • Конфігурація YAML
Godwit Sync

Міграція та постійна синхронізація S3 виробничого рівня. Контроль, передбачуваність та безпека у масштабі.

Продукт

  • Ціни
  • Документація
  • Changelog

Юридична інформація

  • Умови надання послуг
  • Угода користувача
  • Політика конфіденційності

© 2026 Godwit Sync. Усі права захищено.

Версія v1.1.20

Amazon S3, MinIO, Ceph, Cloudflare R2, Backblaze B2, Wasabi та всі інші назви продуктів, логотипи й торгові марки третіх сторін, згадані на цьому сайті, є власністю їхніх відповідних власників і використовуються лише з метою ідентифікації. Їх використання не означає жодної афіліації чи схвалення з їхнього боку.