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>