3.9.8.5. Реализация хранилища Amazon S3 File Storage

Вместо стандартной реализации файлового хранилища можно использовать облачные сервисы. Мы рекомендуем подключать отдельные облачные файловые хранилища при развёртывании приложений в облачных сервисах, так как последние, в большинстве своём, не гарантируют хранения внешних файлов приложения на своих жёстких дисках.

В платформе реализована поддержка файлового хранилища Amazon S3 "из коробки". Для поддержки других сервисов вам потребуется реализовать собственную логику загрузки и хранения файлов.

Для использования Amazon S3 в приложении необходимо зарегистрировать класс AmazonS3FileStorage в файле spring.xml модуля core:

<bean name="cuba_FileStorage"
          class="com.haulmont.cuba.core.app.filestorage.amazon.AmazonS3FileStorage"/>

Затем нужно указать настройки хранилища Amazon в файле app.properties модуля core:

cuba.amazonS3.accessKey = <Access Key>
cuba.amazonS3.secretAccessKey = <Secret Access Key>
cuba.amazonS3.region = <Region>
cuba.amazonS3.bucket = <Bucket Name>

Значения accessKey и secretAccessKey необходимо взять из реквизитов пользователя, созданного в учётной записи AWS IAM, а не самой учётной записи AWS. Нужные значения ключей вы можете найти на вкладке Users консоли администратора AWS.

Файловая структура хранилища организована таким же образом, как и в стандартной реализации хранилища.