file-api-server — это легковесный API-сервер на Go для обмена файлами между клиентами. Проект позволяет безопасно загружать и скачивать файлы через HTTP-интерфейс с использованием JWT-аутентификации.
Разработан был с целью быстрого прототипирования обмена файлами и некоторых идей в приложении Матрешка Мессенджер (https://www.mtrshk.online/) (Google Play)
git clone https://github.com/367300/file-api-server.git
cd file-api-servernpm run docker:init- Сервер будет доступен по адресу:
http://localhost:8085 - Файлы по умолчанию сохраняются в директории
/images/внутри контейнера.
npm run docker:stop
npm run docker:rm- Go >= 1.22
go build -o file-api-serverd ./cmd/server/main.go
./file-api-serverd -addr=localhost:8085 -pathfiles=./uploads/POST /upload— загрузка файла (требуется JWT в заголовке Authorization)GET /get/<путь_к_файлу>— скачивание файла
curl -X POST http://localhost:8085/upload \
-H "Authorization: Bearer <ваш_JWT>" \
-F "file=@example.png"curl -O http://localhost:8085/get/uploads/example.pngДля загрузки файлов требуется JWT-токен. Токен должен быть передан в заголовке:
Authorization: Bearer <ваш_JWT>
Секрет для подписи токена по умолчанию: your-256-bit-secret (см. main.go, переменная secretKey).
- Простая настройка адреса и директории хранения файлов через параметры запуска.
- Автоматический выбор свободного порта при конфликте.
- Все загруженные файлы доступны по прямой ссылке.
- Минимальные зависимости, быстрый старт.
-addr— адрес и порт сервера (например,localhost:8085)-pathfiles— путь для хранения файлов (например,./uploads/)
Если параметры не указаны, сервер запросит их интерактивно.
Проект распространяется под лицензией Apache-2.0. Подробнее см. файл LICENSE.