Довідник конфігураційного файлу
Godwit Sync підтримує конфігураційні файли YAML як альтернативу прапорцям CLI. Використовуйте --config (-f) для завантаження конфігураційного файлу.
Базове використання
godwit sync --config my-sync.yml
godwit sync -f my-sync.yml
# Override a config value with a CLI flag
godwit sync -f my-sync.yml --parallel 8Пріоритет CLI
Прапорці CLI завжди мають пріоритет над значеннями конфігураційного файлу. Якщо прапорець встановлено в командному рядку, відповідне значення конфігурації ігнорується.
Структура конфігураційного файлу
Конфігураційний файл використовує формат YAML з такими секціями верхнього рівня:
Джерело
Налаштування endpoint джерела — локальний шлях або S3 bucket.
| YAML ключ | Тип | Прапорець CLI | Опис |
|---|---|---|---|
| source.url | string | --source | Шлях джерела або S3 URI (s3://bucket/prefix) |
| source.endpoint | string | --source-endpoint | S3 API endpoint (host:port) |
| source.access_key | string | --source-access-key | S3 ключ доступу |
| source.secret_key | string | --source-secret-key | S3 секретний ключ |
| source.session_token | string | --source-session-token | Необов’язковий токен сесії для тимчасових облікових даних |
| source.region | string | --source-region | S3 регіон |
| source.secure | bool | --source-secure | Використовувати TLS для S3 з’єднань |
| source.disable_keepalive | bool | --source-disable-keepalive | Вимкнути HTTP keep-alive |
Призначення
Налаштування endpoint призначення — локальний шлях або S3 bucket.
| YAML ключ | Тип | Прапорець CLI | Опис |
|---|---|---|---|
| destination.url | string | --destination | Шлях призначення або S3 URI |
| destination.endpoint | string | --destination-endpoint | S3 API endpoint (host:port) |
| destination.access_key | string | --destination-access-key | S3 ключ доступу |
| destination.secret_key | string | --destination-secret-key | S3 секретний ключ |
| destination.session_token | string | --destination-session-token | Необов’язковий токен сесії для тимчасових облікових даних |
| destination.region | string | --destination-region | S3 регіон |
| destination.secure | bool | --destination-secure | Використовувати TLS для S3 з’єднань |
| destination.disable_keepalive | bool | --destination-disable-keepalive | Вимкнути HTTP keep-alive |
Політика
Політики порівняння та пропуску для фільтрації об’єктів.
| YAML ключ | Тип | Прапорець CLI | Опис |
|---|---|---|---|
| policy.compare | string | --compare-policy | Політика порівняння (size,etag або size,mtime) |
| policy.skip | string[] | --skip | Список суфіксів або шаблонів для пропуску |
Параметри
Налаштування поведінки передачі — паралелізм, повтори, перезапис.
| YAML ключ | Тип | Прапорець CLI | Опис |
|---|---|---|---|
| options.parallel | int | --parallel | Кількість паралельних воркерів синхронізації |
| options.plan_parallel | int | --plan-parallel | Кількість паралельних воркерів планування |
| options.buffer_multiplier | int | --buffer-multiplier | Множник довжини черги копіювання |
| options.multipart_threshold | int64 | --multipart-threshold | Поріг multipart завантаження в байтах |
| options.override | bool | --override | Перезаписати існуючі об’єкти призначення |
| options.skip_tags | bool | --skip-tags | Пропустити читання тегів об’єктів з джерела |
| options.retry | int | --retry | Максимум повторів на об’єкт |
| options.retry_backoff | string | --retry-backoff | Базова затримка між повторами |
Запуск
Відстеження запуску — ID запуску, драйвер стану та шлях до файлу стану.
| YAML ключ | Тип | Прапорець CLI | Опис |
|---|---|---|---|
| run.run_id | string | --run-id | Ідентифікатор запуску для відстеження |
| run.state_driver | string | --state-driver | Драйвер бекенду стану |
| run.state_path | string | --state-path | Шлях до файлу бази даних стану |
| run.logs_dir | string | --logs-dir | Директорія для логів спостережуваності |
Вивід
Режим виводу в консоль — UI, стислий або тихий.
| YAML ключ | Тип | Прапорець CLI | Опис |
|---|---|---|---|
| output.ui | bool | --ui | Увімкнути детальне логування в консолі |
| output.brief | bool | --brief | Показувати лише основні повідомлення прогресу |
| output.silent | bool | --silent | Придушити весь вивід консолі |
Ліцензія
Шлях до файлу ліцензії або рядок ліцензії.
| YAML ключ | Тип | Прапорець CLI | Опис |
|---|---|---|---|
| license.file | string | --license-file | Шлях до файлу ліцензії |
| license.inline | string | --license | Base64-рядок ліцензії |
Обмеження швидкості
Контроль дросселювання — RPS, ширина каналу та одночасність.
| YAML ключ | Тип | Прапорець CLI | Опис |
|---|---|---|---|
| rate_limit.rps | float64 | --rps | Ліміт запитів на секунду (0 = вимкнено) |
| rate_limit.read_bps | int64 | --read-bps | Ліміт байтів читання на секунду (0 = вимкнено) |
| rate_limit.max_inflight | int | --max-inflight | Максимум одночасних завантажень (0 = вимкнено) |
Статус
HTTP-адреса сервера метрик та статус-ендпоінту.
| YAML ключ | Тип | Прапорець CLI | Опис |
|---|---|---|---|
| status.addr | string | --status-addr | HTTP-адреса для сервера статусу/метрик |
Приклади конфігурацій
Локальна файлова система → S3
Завантаження локальної директорії до S3-сумісного bucket.
source:
url: "./data"
destination:
url: "s3://my-bucket/backup"
endpoint: localhost:9001
access_key: access_key
secret_key: secret_key
secure: false
options:
parallel: 3
output:
ui: true
status:
addr: ":8080"S3 → Локальна файлова система
Завантаження об’єктів з S3 bucket до локальної директорії.
source:
url: "s3://my-bucket/data"
endpoint: localhost:9001
access_key: access_key
secret_key: secret_key
secure: false
destination:
url: "./downloads"
policy:
skip:
- .md5
options:
parallel: 6
output:
ui: trueS3 → S3
Копіювання даних між двома S3-сумісними endpoints.
source:
url: "s3://source-bucket/data"
endpoint: localhost:9001
access_key: access_key
secret_key: secret_key
secure: false
destination:
url: "s3://dest-bucket/backup"
endpoint: localhost:9101
access_key: access_key
secret_key: secret_key
secure: false
policy:
skip:
- .md5
options:
parallel: 9
output:
ui: true
status:
addr: ":8080"Повний приклад (усі секції)
Повний конфігураційний файл з усіма доступними параметрами.
source:
url: "s3://source-bucket/prefix"
endpoint: source.storage.example.com
access_key: SOURCE_ACCESS_KEY
secret_key: SOURCE_SECRET_KEY
region: us-east-1
secure: true
destination:
url: "s3://dest-bucket/backup"
endpoint: localhost:9000
access_key: access_key
secret_key: secret_key
secure: false
policy:
compare: "size,etag"
skip:
- .md5
- .tmp
options:
parallel: 4
plan_parallel: 8
buffer_multiplier: 4
multipart_threshold: 67108864
override: false
skip_tags: false
retry: 3
retry_backoff: "1s"
run:
run_id: "daily-backup"
state_driver: sqlite
state_path: "./godwit-sync.state.db"
logs_dir: "./logs"
output:
ui: true
brief: false
silent: false
license:
file: "./license.json"
rate_limit:
rps: 50
read_bps: 104857600
max_inflight: 10
status:
addr: ":8080"Прапорці лише для CLI
Ці прапорці не мають еквіваленту в конфігураційному файлі та мають передаватися в командному рядку:
--config (-f) — Вибирає конфігураційний файл для завантаження--plan-only — Планування передачі без копіювання даних--resume — Відновлення раніше запланованої передачі--register — Реєстрація ліцензії на диск
Довідник CLI
Перегляньте повний список усіх прапорців CLI з типами, значеннями за замовчуванням та описами.
Переглянути довідник CLI