Skip to main content

StorageService

@lowcode/api


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>