Приложение для работы с Яндекс.Диском через графический интерфейс в рамках MRI-пайплайна.
- 🔐 Безопасное хранение OAuth токенов в системном хранилище
- 📁 Просмотр файлов и папок на Яндекс.Диске
- 🧭 Навигация по структуре папок
- 🔄 Автоматическое обновление списка файлов
- 💾 Сохранение учетных данных между сессиями
- Клонируйте репозиторий:
git clone <repository-url>
cd dcm2bids- Создайте виртуальное окружение:
python -m venv venv- Активируйте виртуальное окружение:
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate- Установите зависимости:
pip install -r requirements.txt- Установка завершена!
- Перейдите на Яндекс.OAuth
- Создайте новое приложение
- В настройках приложения добавьте права:
cloud_api:disk.read- чтение файловcloud_api:disk.write- запись файлов (если нужно)
- Скопируйте Client ID
- Получите токен по ссылке:
https://oauth.yandex.ru/authorize?response_type=token&client_id=YOUR_CLIENT_ID
Есть два способа указать токен:
- Создайте файл
.envв корне проекта - Добавьте строку:
YANDEX_DISK_TOKEN=ваш_токен_здесь - Приложение автоматически загрузит токен при запуске
- Запустите приложение
- Введите токен в поле "OAuth токен"
- Нажмите "Сохранить токен" для сохранения между сессиями
python main.py-
Подключение к Яндекс.Диску:
- Введите OAuth токен в поле "OAuth токен"
- Нажмите "Подключиться"
- Для сохранения токена нажмите "Сохранить токен"
-
Навигация:
- Двойной клик по папке для входа в неё
- Кнопки "← Назад" и "↑ Вверх" для навигации
- Поле "Путь" для прямого перехода
-
Просмотр файлов:
- Список файлов отображается в таблице
- Показывается имя, тип, размер и дата изменения
- Кнопка "Обновить" для обновления списка
- OAuth токены шифруются перед сохранением
- Используется системное хранилище ключей (keyring)
- Учетные данные не сохраняются в репозитории
- Все конфиденциальные файлы исключены из .gitignore
dcm2bids/
├── config/
│ ├── __init__.py
│ └── credentials_manager.py # Менеджер учетных данных
├── gui/
│ ├── __init__.py
│ └── main_window.py # Главное окно приложения
├── yandex_disk/
│ ├── __init__.py
│ └── api_client.py # Клиент API Яндекс.Диска
├── main.py # Точка входа
├── requirements.txt # Зависимости
├── .gitignore # Исключения Git
└── README.md # Документация
Для разработки дополнительного функционала:
- Добавьте новые модули в соответствующие пакеты
- Обновите requirements.txt при добавлении зависимостей
- Следуйте принципам безопасного хранения данных
- Добавьте обработку ошибок для новых функций
- Загрузка файлов на Яндекс.Диск
- Скачивание файлов с Яндекс.Диска
- Контекстное меню для файлов
- Поиск файлов
- Интеграция с MRI-пайплайном