Skip to main content

CLI для передачи файлов между директориями через Confluence API

Project description

sber-tunnel

CLI-сервис для создания тунеля между директориями на разных устройствах с использованием Confluence API.

Описание

Sber-tunnel - это инструмент командной строки на Python, который позволяет загружать и скачивать целые директории через Confluence, используя систему манифестов для отслеживания файлов. Сервис автоматически разбивает большие файлы (>100 МБ) на чанки и обеспечивает целостность данных с помощью контрольных сумм SHA256.

Основные возможности

  • 🔐 Безопасная авторизация через API token и опциональные p12 сертификаты
  • 📦 Автоматическое чанкование файлов больше 100 МБ
  • 🔍 Проверка целостности данных через SHA256
  • 📋 Манифест для отслеживания структуры директорий
  • 🚫 Автоматическое исключение скрытых и временных файлов
  • 📂 Сохранение полной структуры каталогов

Установка

Через pip

pip install sber-tunnel

Из исходников

git clone <repository-url>
cd sber-tunnel
pip install -e .

Использование

1. Инициализация

Перед первым использованием необходимо инициализировать конфигурацию:

sber-tunnel init

Команда запросит:

  • Confluence base URL
  • Имя пользователя
  • Пароль (API token)
  • Опционально: путь к p12 сертификату и пароль

Конфигурация сохраняется в .sber-tunnel/config.json в текущей директории.

2. Просмотр манифеста

Для просмотра списка загруженных директорий на странице Confluence:

sber-tunnel scan -p <page_id>

Где <page_id> - ID страницы Confluence.

Пример:

sber-tunnel scan -p 123456789

3. Загрузка директории

Для загрузки директории со всем содержимым в Confluence:

sber-tunnel upload -p <page_id> <путь/к/директории>

Пример:

sber-tunnel upload -p 123456789 ./my-project

Команда:

  • Проверяет права доступа к странице
  • Рекурсивно собирает все файлы из директории
  • Исключает скрытые файлы и директории (начинающиеся с точки)
  • Разбивает большие файлы на чанки по 100 МБ
  • Загружает все файлы с контрольными суммами
  • Обновляет манифест на странице

4. Скачивание директории

Для скачивания директории из Confluence:

sber-tunnel download -p <page_id> -d <имя-директории> <путь/для/сохранения>

Пример:

sber-tunnel download -p 123456789 -d my-project ./downloads/

Команда:

  • Скачивает манифест
  • Находит все файлы для указанной директории
  • Скачивает и собирает чанки файлов
  • Проверяет контрольные суммы
  • Восстанавливает структуру каталогов
  • Устанавливает время модификации файлов

Структура манифеста

Сервис использует файл st-manifest.json, который хранится как attachment на странице Confluence. Структура манифеста:

[
  {
    "id": "unique-file-id",
    "path": "relative/path/to/file.txt",
    "parent": "directory-name",
    "size": 1024,
    "mtime": 1699999999.0,
    "sha256": "file-hash",
    "version": 1,
    "chunks": [
      {
        "order": 0,
        "checksum": "chunk-hash"
      }
    ]
  }
]

Ограничения

  • Максимальный размер чанка: 100 МБ
  • Исключаются: скрытые файлы/директории (начинающиеся с точки), временные файлы
  • Требуются права на добавление attachments к указанной странице Confluence

Требования

  • Python >= 3.8
  • Доступ к Confluence с правами на добавление attachments
  • API token для аутентификации

Зависимости

  • click >= 8.1.0
  • atlassian-python-api >= 3.41.0
  • requests >= 2.31.0
  • cryptography >= 41.0.0

Безопасность

  • Пароли и API токены хранятся локально в конфигурационном файле
  • Поддержка p12 сертификатов для дополнительной безопасности
  • Все данные передаются через HTTPS (при использовании сертификатов)
  • Контрольные суммы SHA256 для проверки целостности файлов

Лицензия

MIT

Автор

apaem (emila1998@yandex.ru)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sber_tunnel-2.1.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sber_tunnel-2.1.0-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file sber_tunnel-2.1.0.tar.gz.

File metadata

  • Download URL: sber_tunnel-2.1.0.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for sber_tunnel-2.1.0.tar.gz
Algorithm Hash digest
SHA256 09aa299b6308c30f7745a97fc5ef5e3ba6e2c2d5052b966a7458beaad8fe8c0c
MD5 56303c4994ba909335563c07e30dc909
BLAKE2b-256 306a25badc47f1e14685f6c5acb2d83e976d7a3c9a4c9acacaed48d93073c9f2

See more details on using hashes here.

File details

Details for the file sber_tunnel-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: sber_tunnel-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for sber_tunnel-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 461bbc001f2711939fea707a6c96a873a37a0213bc6674f7e479fdbe7afa6c7f
MD5 12effbbc37bf8a28da89a673e94a2865
BLAKE2b-256 b8e333533d5843adbc5993097381f1a7f3e51ac62122bda986f29d28a41e32f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page