Перейти к содержанию

S3 garage

Garage S3: presigned URLs для KYC-документов.

Конфиг из passwords.yaml

Ключ Dev default Назначение
s3Endpoint https://s3.1-wallet.app/ URL Garage S3 endpoint
s3Region 1-wallet Регион (произвольный для Garage)
s3Bucket kyc-data Бакет для KYC-документов и аватаров
s3AccessKey Access key Garage
s3SecretKey Secret key Garage

pathStyle: true — Garage не поддерживает virtual-hosted style.

Операции

Операция HTTP метод Кто вызывает Зачем
generatePresignedUploadUrl PUT presigned StorageEndpoint.generateUploadUrl Клиент загружает KYC-документ напрямую в Garage
confirmUpload LIST (listObjects) StorageEndpoint.confirmUpload Проверка что файл действительно загружен (Garage не реализует statObject/GetObjectAcl)
getDownloadUrl GET (прямой URL) AdminKycEndpoint.getKycRecord, getKycDetails Оператор просматривает документы в Admin Panel
deleteFile DELETE Сервис удаления пользователя Удаление объектов из S3

Presigned upload URL действует 3600 секунд по умолчанию.

getDownloadUrl возвращает прямой публичный URL вида scheme://host:port/bucket/key — не presigned. Доступ контролируется политиками бакета Garage.

[PLAN] PDPA gap

Hard-delete пользователя (deleteUserAccount) не удаляет S3-объекты в бакете kyc-data. Ключи хранятся в kyc_verification.documentFrontUrl, documentBackUrl, selfieUrl. Необходим дополнительный шаг StorageService.deleteFile для соответствия PDPA (right to erasure).