StorageService
Class: StorageService
Defined in: apps/api/src/modules/storage/storage.service.ts:18
Сервис для работы с S3-совместимым объектным хранилищем.
Отвечает за:
- генерацию presigned URL для загрузки файлов (PUT);
- генерацию presigned URL для скачивания файлов (GET);
- удаление файлов из хранилища.
Поддерживает как AWS S3, так и совместимые сервисы (MinIO, Yandex Object Storage и т.п.) через настройку кастомного endpoint.
Constructors
Constructor
new StorageService(
config):StorageService
Defined in: apps/api/src/modules/storage/storage.service.ts:23
Parameters
config
ConfigService
Returns
StorageService
Methods
deleteFile()
deleteFile(
key):Promise<void>
Defined in: apps/api/src/modules/storage/storage.service.ts:98
Удаляет файл из хранилища.
Parameters
key
string
Уникальный ключ файла в хранилище
Returns
Promise<void>
generateDownloadUrl()
generateDownloadUrl(
key,expiresIn?):Promise<string>
Defined in: apps/api/src/modules/storage/storage.service.ts:82
Генерирует presigned URL для скачивания файла.
Клиент может использовать этот URL для прямого скачивания файла из S3 через HTTP GET запрос без участия бэкенда.
Parameters
key
string
Уникальный ключ файла в хранилище
expiresIn?
number
Время жизни URL в секундах (по умолчанию из конфига)
Returns
Promise<string>
Presigned URL для скачивания
generateStorageKey()
generateStorageKey(
clientId,projectId,filename):string
Defined in: apps/api/src/modules/storage/storage.service.ts:142
Генерирует уникальный ключ для хранения файла.
Формат: {clientId}/{projectId}/{timestamp}-{randomString}.{extension}
Parameters
clientId
string
ID клиента
projectId
string
ID проекта
filename
string
Исходное имя файла
Returns
string
Уникальный ключ для S3
generateUploadUrl()
generateUploadUrl(
key,contentType,expiresIn?):Promise<string>
Defined in: apps/api/src/modules/storage/storage.service.ts:56
Генерирует presigned URL для загрузки файла.
Клиент может использовать этот URL для прямой загрузки файла в S3 через HTTP PUT запрос без участия бэкенда.
Parameters
key
string
Уникальный ключ файла в хранилище
contentType
string
MIME-тип файла
expiresIn?
number
Время жизни URL в секундах (по умолчанию из конфига)
Returns
Promise<string>
Presigned URL для загрузки
getBucketName()
getBucketName():
string
Defined in: apps/api/src/modules/storage/storage.service.ts:128
Возвращает имя bucket для хранения вложений.
Returns
string
uploadBuffer()
uploadBuffer(
key,data,contentType):Promise<void>
Defined in: apps/api/src/modules/storage/storage.service.ts:114
Загружает файл в S3 из буфера.
Parameters
key
string
Уникальный ключ файла в хранилище.
data
Buffer
Буфер с содержимым файла.
contentType
string
MIME-тип файла.
Returns
Promise<void>