storage_files
6 месяцев назад
6 месяцев назад
6 месяцев назад
7 месяцев назад
7 месяцев назад
7 месяцев назад
7 месяцев назад
7 месяцев назад
README.md
Файловое хранилище на Django
Платформа для безопасного хранения и управления файлами с возможностью обмена между пользователями.
Возможности
- 📁 Загрузка файлов - Загружайте файлы любого типа с удобной организацией
- 🔐 Аутентификация - Безопасная система входа и регистрации
- 👥 Обмен файлами - Делитесь файлами с другими пользователями
- 🌐 Публичные файлы - Создавайте публично доступные файлы
- 📊 Статистика - Отслеживайте количество скачиваний
- 🏷️ Категории - Организуйте файлы по категориям
- 🔒 Права доступа - Настройка прав просмотра и скачивания
- 📱 Адаптивный дизайн - Работает на всех устройствах
Установка
1. Клонирование репозитория
2. Создание виртуального окружения
3. Активация виртуального окружения
Windows:
Linux/Mac:
4. Установка зависимостей
5. Настройка переменных окружения
Создайте файл в корне проекта:.env
6. Выполнение миграций
7. Создание суперпользователя
8. Запуск сервера
Откройте браузер и перейдите по адресу: http://127.0.0.1:8000
Использование
Веб-интерфейс
- Вход в систему - Используйте созданного суперпользователя
- Загрузка файлов - Нажмите кнопку "Загрузить файл" на главной странице
- Управление файлами - Просматривайте, скачивайте и удаляйте файлы
- Обмен файлами - Делитесь файлами с другими пользователями через API
API Endpoints
Файлы
- Список файлов пользователяGET /api/files/- Загрузка нового файлаPOST /api/files/- Детали файлаGET /api/files/{id}/- Обновление файлаPUT /api/files/{id}/- Удаление файлаDELETE /api/files/{id}/- Скачивание файлаGET /api/files/{id}/download/
Категории
- Список категорийGET /api/categories/- Создание категорииPOST /api/categories/
Обмен файлами
- Список общих файловGET /api/shares/- Поделиться файломPOST /api/shares/- Файлы, которыми поделились с вамиGET /api/shared-files/- Публичные файлыGET /api/public-files/
Примеры использования API
Загрузка файла
Скачивание файла
Поделиться файлом
Структура проекта
storeFiles/
├── file_storage/ # Основные настройки Django
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
│ └── asgi.py
├── files/ # Приложение для работы с файлами
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── models.py
│ ├── serializers.py
│ ├── urls.py
│ └── views.py
├── templates/ # HTML шаблоны
│ ├── base.html
│ └── files/
│ ├── home.html
│ └── welcome.html
├── static/ # Статические файлы
│ └── css/
│ └── style.css
├── media/ # Загруженные файлы
├── manage.py
├── requirements.txt
└── README.md
Модели данных
StoredFile
- Название файлаtitle- Описаниеdescription- Путь к файлуfile- Размер файла в байтахfile_size- MIME тип файлаfile_type- Категория файлаcategory- Публичный ли файлis_public- Количество скачиванийdownload_count- Владелец файлаowner
FileCategory
- Название категорииname- Описание категорииdescription
FileShare
- Файл для обменаfile- Пользователь, с которым делятсяshared_with- Пользователь, который поделилсяshared_by- Права доступа (view/download)permission- Срок действия ссылкиexpires_at
Безопасность
- Все файлы загружаются в отдельные папки для каждого пользователя
- Проверка прав доступа при скачивании файлов
- CSRF защита для веб-форм
- Аутентификация через Django REST Framework
- Валидация типов и размеров файлов
Развертывание в продакшене
- Установите переменную
в настройкахDEBUG=False - Настройте
для вашего доменаALLOWED_HOSTS - Используйте PostgreSQL или MySQL вместо SQLite
- Настройте веб-сервер (Nginx + Gunicorn)
- Настройте SSL сертификат
- Используйте CDN для статических файлов
Лицензия
MIT License
Поддержка
Если у вас возникли вопросы или проблемы, создайте issue в репозитории проекта.