https://github.com/macalistervadim/upload_images
Project for uploading files via FastAPI + MinIO to the public cloud with the ability to return public links.
https://github.com/macalistervadim/upload_images
docker fastapi minio restapi
Last synced: about 1 month ago
JSON representation
Project for uploading files via FastAPI + MinIO to the public cloud with the ability to return public links.
- Host: GitHub
- URL: https://github.com/macalistervadim/upload_images
- Owner: macalistervadim
- License: mit
- Created: 2025-04-27T06:19:31.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-27T10:15:50.000Z (about 1 year ago)
- Last Synced: 2025-04-29T23:58:29.779Z (about 1 year ago)
- Topics: docker, fastapi, minio, restapi
- Language: Python
- Homepage: https://api.macalistervadim.site/docs/
- Size: 11.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚀 MinIO Upload Backend
[](https://www.python.org/)
[](https://fastapi.tiangolo.com/)
[](https://www.docker.com/)
[](https://opensource.org/licenses/MIT)
---
Проект для загрузки файлов через FastAPI + MinIO в публичное облако с возможностью отдачи публичных ссылок.
---
## 🛠️ Используемые технологии
- **FastAPI**: современный веб-фреймворк для создания API на Python.
- **MinIO**: высокопроизводительное решение для хранения объектов, совместимое с Amazon S3.
- **Docker**: платформа для автоматизации развертывания приложений в контейнерах.
- **Docker Compose**: инструмент для определения и запуска многоконтейнерных Docker приложений.
## 📦 Быстрый старт
1. **Клонируем репозиторий:**
```bash
git clone https://github.com/macalistervadim/upload_images
cd upload_images
2. **Создаем файл `.env` в корне проекта:**
```bash
cp .env.example .env
```
3. **Запускаем проект:**
```bash
docker-compose up -d
```
4. **Проверяем работу API:**
```bash
curl -X POST "http://localhost:8000/upload" -F "file=@path/to/your/file.jpg"
```
5. **Сервисы:**
- **FastAPI**: [http://localhost:8000/docs](http://localhost:8000/docs)
- **MinIO**: [http://localhost:9000](http://localhost:9000) (логин: `из .env`, пароль: `из .env`)
## Как пользоваться API
1. **Загрузка файла:**
- Метод: `POST`
- URL: `/upload`
- Параметры:
- `file`: файл для загрузки
- Ответ:
```json
{
"url": "https://your-minio-url/bucket-name/file-name"
}
```
Пример запроса через curl:
```bash
curl -X 'POST' \
'http://:8000/upload/' \
-H 'accept: application/json' \
-H 'Content-Type: multipart/form-data' \
-F 'file=@yourfile.jpg'
```
Ответ:
```json
{
"url": "http://:9000/images/yourfile.jpg"
}
```
## 📄 Лицензия
Этот проект лицензирован под MIT License. Пожалуйста, ознакомьтесь с файлом [LICENSE](LICENSE) для получения подробной информации.
## 📧 Контакты
Если у вас есть вопросы или предложения, не стесняйтесь обращаться в **[issues](https://github.com/macalistervadim/upload_images/issues)**