Skip to content

dhucsik/beyimtech

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание BeyimTech

Описание сервиса

Создать сервис на языке Go, использующий Docker и любую базу данных по выбору. Сервис должен принимать POST-запросы с изображениями в форматах PNG, JPEG и WebP с определённым ключом (например, user_id = 1 ). Сервис должен конвертировать изображение в формат WebP и сгенерировать три версии с уменьшенными разрешениями. Оригинальное, WebP с оригинальным разрешением, и 3 сгенерированных изображения с меньшими разрешениями должны быть загружены на AWS S3 или совместимый облачный сервис (например, DigitalOcean). Все названия файлов, пути и URL-ы должны быть сохранены в базе данных.

Обязательные требования

  • CRUD операции:
    • Сервис должен принимать изображения с ключами.
    • Сервис должен изменять изображения по ключу.
    • Сервис должен возвращать данные.
    • Сервис должен возвращать данные для определенного ключа.
    • Сервис должен удалять изображения по URL оригинальной картинки.
    • Сервис должен удалять по ключу (например, user_id )

Запросы:

Запрос должен возвращать ответ сразу, а конвертация и загрузка должны выполняться асинхронно.

Валидация:

Не принимать изображения размером более 5MB.

Dockerfile

Сервис должен быть упакован в Docker.

Дополнительные требования (будет плюсом):

  • Сделать S3 bucket непубличным, но использовать CDN.
  • Оптимизация запросов.
  • Предоставление временного ключа на облачный сервис, работающего в короткое время (например, в течение дня) и дающего разрешение только на определенные действия в бакете.
  • Приложить скриншоты контента бакета и его policy (можно заблюрить)
  • Сделать ключи в базе данных (например, user_id ) полиморфными.
  • Использовать любую архитектуру на выбор.
  • Написать тесты.
  • Добавить README.md

Структура проекта

  1. Описание задачи и требований.
  2. Требования к функциональности (CRUD операции, запросы, валидация).
  3. Используемые технологии и инструменты (Go, Docker, база данных, S3 или совместимый сервис).
  4. Дополнительные требования и оптимизации.
  5. Описание структуры проекта.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published