diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/Kfale.iml b/.idea/Kfale.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/.idea/Kfale.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..1d7b5bb --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..78a231d --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index adda36a..7386a29 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,161 @@ -# Kfale - Kfale +# Kfale - Автоматизированная система загрузки файлов на FTP сервер + +![Python](https://img.shields.io/badge/python-3.10-blue.svg) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + +--- + +## О проекте + +**Kfale** — это мощный и простой в использовании скрипт, написанный на Python, который позволяет автоматизировать процесс загрузки файлов на FTP-сервер. С помощью этого инструмента вы можете легко управлять передачей данных между вашим локальным хранилищем и удалённым FTP-сервером. + +Скрипт поддерживает хранение конфигурации в файлах `config.ini` и `ftp.ini`, что делает его удобным для повторного использования без необходимости каждый раз вводить параметры подключения. + +--- + +## Основные возможности + +- **Управление конфигурацией**: Все настройки сохраняются в специальных файлах (`config.ini` и `ftp.ini`), чтобы избежать ручного ввода при каждом запуске. +- **Простое взаимодействие с пользователем**: Интерактивное меню позволяет быстро указать путь к папке и параметры подключения к FTP-серверу. +- **Автоматическая загрузка файлов**: После успешной загрузки файла на FTP-сервер, он автоматически удаляется с локального устройства, освобождая место. +- **Безопасность**: Конфиденциальные данные (например, логин и пароль) хранятся в отдельном файле конфигурации. +- **Поддержка стандартных протоколов**: Использует библиотеку `ftplib` для надёжной работы с FTP-серверами. + +--- + +## Требования + +Для работы скрипта необходимы следующие компоненты: + +- **Python 3.x**: Убедитесь, что у вас установлен Python версии 3.10 или выше. +- **Библиотека ftplib**: Обычно входит в стандартную библиотеку Python, но если её нет, её можно установить через pip: + + ```bash + pip install ftplib + ``` + +--- + +## Установка + +1. **Клонирование репозитория** + + Склонируйте этот репозиторий на свой компьютер: + + ```bash + git clone https://github.com/your-repo-url/Kfale.git + cd Kfale + ``` + +2. **Установка зависимостей** + + Убедитесь, что у вас установлен Python 3.x. Затем установите все необходимые зависимости: + + ```bash + pip install configparser + ``` + + > Примечание: В большинстве случаев `ftplib` уже включена в стандартную библиотеку Python, поэтому дополнительная установка не требуется. + +--- + +## Как использовать + +### Первый запуск + +При первом запуске скрипт запросит у вас следующие данные: + +1. **Путь к папке для взаимодействия со скриптом**: Укажите путь к директории, где будут находиться файлы для загрузки. +2. **Детали подключения к FTP-серверу**: + - IP-адрес FTP-сервера. + - Логин пользователя. + - Пароль. + +Все эти данные будут сохранены в соответствующих файлах конфигурации (`config.ini` и `ftp.ini`). + +### Работа со скриптом + +1. Запустите скрипт: + + ```bash + python main.py + ``` + +2. Введите имя файла, который нужно загрузить на FTP-сервер. Если файл успешно загружен, он будет автоматически удалён с локального устройства. + +3. Для выхода из программы введите команду `exit`. + +--- + +## Конфигурационные файлы + +### `config.ini` + +Файл содержит путь к директории, где находятся файлы для загрузки: + +```ini +[DEFAULT] +folder_path = /path/to/your/folder +``` + +### `ftp.ini` + +Файл содержит информацию о подключении к FTP-серверу: + +```ini +[DEFAULT] +host = your_ftp_host +username = your_username +password = your_password +``` + +> **Важно**: Не забудьте защищать файл `ftp.ini`, так как он содержит конфиденциальную информацию. + +--- + +## Пример использования + +```bash +$ python main.py +Введите путь к папке для взаимодействия со скриптом: /home/user/files +Введите IP адрес FTP сервера: ftp.example.com +Введите логин для FTP сервера: user123 +Введите пароль для FTP сервера: password123 +Введите имя файла для копирования на FTP сервер (или 'exit' для выхода): example.txt +Файл успешно загружен на FTP сервер. +Оригинальный файл удален. +Введите имя файла для копирования на FTP сервер (или 'exit' для выхода): exit +``` + +--- + +## Дополнительные функции + +- **Логирование**: Вы можете добавить логирование для отслеживания действий скрипта. +- **Многопоточность**: Для загрузки нескольких файлов одновременно можно использовать многопоточность. +- **Расширенные проверки**: Добавьте проверку наличия файла перед попыткой загрузки. + +--- + +## Лицензия + +Этот проект распространяется по лицензии **MIT License**. Подробности можно найти в файле [LICENSE](LICENSE). + +--- + +## Авторы + +- **kromskii2** - *Инициатор проекта* - [GitHub](https://github.com/kromskii2) + +Если у вас есть вопросы или предложения по улучшению, создайте issue или pull request! + +--- + +## Благодарности + +- Спасибо сообществу Python за отличные инструменты и библиотеки! +- Особая благодарность всем, кто помог тестировать этот проект. + +--- + +Надеемся, что Kfale станет полезным инструментом в вашем арсенале! 😊