Необходимо написать сервис на Golang работающий по gRPC
Сервис должен:
-
Принимать бинарные файлы (изображения) от клиента и сохранять их на жесткий диск.
-
Иметь возможность просмотра списка всех загруженных файлов в формате:
Имя файла | Дата создания | Дата обновления
-
Отдавать файлы клиенту.
-
Ограничивать количество одновременных подключений с клиента:
-
на загрузку/скачивание файлов - 10 конкурентных запросов;
-
на просмотр списка файлов - 100 конкурентных запросов.
-
Клонирование репозитория
git clone https://github.com/6jodeci/tages-test
Взаимодействие с сервером
- Старт сервера
$ make server
- Запускаем клиентский интерфейс для взаимодействия с gRPC-серверами
$ make evans
- Принимает бинарные файлы (изображения) от клиента и сохраняет их на сервере
file.FileService@localhost:8081> call UploadFile
- Отправляем байтовый файл в кодировке base64
file_data (TYPE_BYTES) => "base64"
- Задаем название файла при сохранении
file_name (TYPE_STRING) => "file_name_string.format"
- Возвращает список всех файлов включая название, дату создания обновления файла
file.FileService@localhost:8081> call ListFiles
- Вызов DownloadFile для отдачи файлов клиенту
file.FileService@localhost:8081> call DownloadFile
- Задаем название файла который хотим получить от сервера
file_name (TYPE_STRING) => file_name_string.format
Закодированное изображение лежит в файле img_bytes.txt!