Сервис предоставляет HTTP API для загрузки (upload), скачивания (download) и удаления файлов. Авторизация - Basick Auth. Регистрация пользователей в сервисе не предусморена.
Python ^3.10 Flask 2.2.3
1 авторизованный пользователь загружает файл;
2 файл сохранятеся на диск в следующую структуру каталогов: store/ab/abcdef12345... где "abcdef12345..." - имя файла, совпадающее с его хэшем. /ab/ - подкаталог, состоящий из первых двух символов хэша файла. Алгоритм хэширования - sha256.
3 возвращает хэш загруженного файла;
1 авторизованный пользователь передает хэш файла, который необходимо удалить;
2 если по хешу файл удалось найти в локальном хранилище, и файл принадлежит пользователю, то файл пользователя удаляется;
1 любой пользователь передаёт параметр - хэш файла;
2 если по хешу файл удалось найти в локальном хранилище, то возвращаем файл;
1 Активировать виртуальное окружение
2 Установить Poetry
3 Для установки зависимостей выполнить команду poetry install
4 Создать в корневой папке проекта файл .env
и скопировать в него переменные окруджения из deploy/dev.env
5 Запустить сервер командой honcho start rest
1 Загрузка файла на сервер
endpoint /files
method post
response filename (string)
2 Скачивание файла с сервера
endpoint /files/{filename}
method get
response file (bytes)
2 Удаление файла на сервере
endpoint /files/{filename}
method delete
response deleted filename (string)
Тестировать ендпоинты можно через Postman.
Также для быстрой проверки в проект добавлен клиент (file_sender_client/client.py)
.
Клиент может загружать файл на сервер/скачивать файл/удалять файл.
Все команды выполняются из корневой директории проекта
1 Для загрузки файла на сервер выполните команду poetry run upload_file
.
Загруженный файл появится в папке store
.
2 Для скачивания файла с сервера выполните команду poetry run download_file
.
Файл появится в папке file_sender_client
.
3 Для удаления файла с севрера выполните команду poetry run delete_file
.