Sobes.tech
Senior
12

Расскажи о микросервисе на базе PostgreSQL для хранения медиафайлов. Что хранилось в PostgreSQL, а что в S3?

Компании, где спрашивали
А7

Ответ от нейросети

sobes.tech AI

В микросервисе на базе PostgreSQL для хранения медиафайлов обычно разделяют ответственность между базой данных и объектным хранилищем S3:

  • В PostgreSQL хранятся метаданные медиафайлов: информация о файле (имя, тип, размер), ссылки на расположение в S3, идентификаторы, теги, дата загрузки, права доступа и другая структурированная информация.

  • В S3 хранятся сами медиафайлы — бинарные данные (изображения, видео, аудио и т.п.). Это позволяет эффективно масштабировать хранение больших файлов и использовать преимущества объектного хранилища (доступность, репликация, CDN).

Пример структуры таблицы в PostgreSQL:

CREATE TABLE media_files (
  id UUID PRIMARY KEY,
  filename TEXT NOT NULL,
  content_type TEXT NOT NULL,
  size BIGINT NOT NULL,
  s3_key TEXT NOT NULL, -- ключ объекта в S3
  uploaded_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
  owner_id UUID,
  tags TEXT[]
);

Таким образом, PostgreSQL отвечает за управление метаданными и бизнес-логикой, а S3 — за хранение и доставку самих файлов.