S3 файловые хранилища, сертифицированные по 152-ФЗ

День добрый!
Подскажите пожалуйста - планируется ли в JMIX (или CUBA Platform) расширить класс AmazonS3FileStorage. с тем, чтобы “из коробки” поддерживались сертифицированные по 152-ФЗ облачные ресурсы Яндекс.Облака и Mail. ru?
И есть ли планы реализации работы с несколькими бакетами, в зависимости от свойств файлов (типы, размеры, владельцы и т.п.), это актуально для разных видов хранилищ (холодные/горячие)?

Добрый день,

На этот год запланирована реализация Jmix компонента для хранения файлов в Yandex Object Storage.

По облаку Mail.ru никаких планов пока нет. Как я понимаю, у них совместимое с Amazon S3 API, поэтому при желании кто-то легко может скопировать jmix модуль awsfs: https://github.com/Haulmont/jmix-awsfs
и адаптировать для себя.

Стоит иметь ввиду, что в Jmix один проект сможет подключить и использовать одновременно несколько реализаций file storage.

Пока таких планов не было. Если чуть-чуть поподробнее расскажете про ваши потребности, можно будет создать тикет на будущее.
В принципе аддон jmix-awsfs уже позволяет программно создать в проекте несколько экземпляров Spring-бина io.jmix.awsfs.AwsFileStorage с разными параметрами региона, бакета и т.д.
В проекте нужно будет разруливать вручную в коде, в какой file storage из подключенных проекту сохранять новые файлы.

1 симпатия

Спасибо за ответ.
Заготовку бина обязательно посмотрим и попробуем соорудить решение “по мотивам”.
Безнесовых задач вокруг S3 довольно много, это связано и с разной стоимостью хранения, и с особенностями шифрования трафика, и с версионированием, и с резервным копированием, и с периодической сменой на сервисных аккаунтах ключей доступа к бакетам и много чего еще (включение мониторинга, например). Это большая серьезная тема, достаточно перспективная.

В коде бина пока не увидел мыслей про поддержку TLS 1.2, чего-нибудь типа “System.setProperty(“jdk.tls.client.protocols”, “TLSv1.2”);”, подскажите пожалуйста, поддержку нужно включить уже при запуске приложения, как-то так “java app.jar -Djdk.tls.client.protocols=TLSv1.2”?

Да, нужно делать так, согласно документации AWS SDK:
https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/security-java-tls.html

По итогу подготовили собственно решение, совместимое с CUBA.platform:

  • Система хранения настроек подключения к S3 бакетам

  • Привязка системы хранения настроек к группам доступа

  • Собственно REST API коннектор, транслирующий FileStorage в вызовы методов протокола Amazon S3

Таким образом на одной серверной инсталляции могут сосуществовать разные реализации FileStorage, и даже миграция туда-сюда между локалом и бакетом возможна (сохранена внутренняя структура каталогов).