Конфигурация BLOB-хранилища

В этой статье описывается расположение и назначение конфигурационного файла хранилища BLOB-объектов, а также приводится алгоритм публикации активов из данных хранилищ.

Общая информация

BLOB-хранилище (или хранилище двоичных больших объектов) - это форма хранилища данных, предназначенного для хранения больших объемов неструктурированных данных.

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

Для изменения конфигурации BLOB-хранилища:

1. Нажмите на Инструменты сайта на боковой панели.

Изображение статьи

2. Перейдите в Конфигурация > Хранилище BLOB-объектов.

Изображение статьи

Образец файла конфигурации

Ниже расположен пример конфигурационного файла хранилища BLOB-объектов:

<?xml version="1.0" encoding="UTF-8"?>
<!--
    Blob stores configuration file.

    For every store you need to specify:
    <blobStore>
        <id/>
        <type/>
        <pattern/>
        <mappings>
            <mapping>
                <publishingTarget/>
                <storeTarget/>
                <prefix/>
            </mapping>
        </mappings>
        <configuration/>
    </blobStore>

    id:  a unique id for the store
    type: the type of store to use
    pattern: the regex to match file paths
    mappings.mapping.publishingTarget: the name of the publishing storeTarget (preview, staging, live)
    mappings.mapping.storeTarget: the name of the storeTarget inside the store
    mappings.mapping.prefix: the prefix to use for all paths (optional)
    configuration: configuration specific for the store type

   Every store can require additional properties.
-->
<blobStores>
    <!--
      AWS S3 Store

      Configuration properties:

        <credentials>
            <accessKey/>
            <secretKey/>
        </credentials>
        <region/>
        <endpoint/>
        <pathStyleAccess/>

        credentials.accessKey: AWS access key (optional)
        credentials.secretKey: AWS secret key (optional)
        region: AWS region for the service (optional)
        pathStyleAccess: indicates if path style access should be used for all requests (defaults to false)

      -->

    <blobStore>
        <id>s3-store</id>
        <type>s3BlobStore</type>
        <pattern>/static-assets/s3/.*</pattern>
        <mappings>
            <mapping>
                <publishingTarget>preview</publishingTarget>
                <storeTarget>my-authoring-bucket</storeTarget>
                <prefix>sandbox</prefix>
            </mapping>
            <mapping>
                <publishingTarget>staging</publishingTarget>
                <storeTarget>my-authoring-bucket</storeTarget>
                <prefix>staging</prefix>
            </mapping>
            <mapping>
                <publishingTarget>live</publishingTarget>
                <storeTarget>my-delivery-bucket</storeTarget>
            </mapping>
        </mappings>
        <configuration>
            <credentials>
                <accessKey>xxxxxxxxx</accessKey>
                <secretKey>xxxxxxxxx</secretKey>
            </credentials>
            <region>us-west-1</region>
            <pathStyleAccess>true</pathStyleAccess>
        </configuration>
    </blobStore>

</blobStores>

Copy-icon

Обеспечьте шифрование ваших учетных данных для повышения безопасности. Для подробных инструкций по управлению или кодированию секретных данных, таких как учетные данные AWS, обратитесь к документации по управлению конфиденциальными данными.

Для повышения безопасности и управления рекомендуется создать профиль AWS с использованием файла переменных окружения, вместо конфигурации зашифрованных учетных данных в файле конфигурации blob-хранилища. Этот подход позволяет создавать учетные записи IAM для каждого разработчика, представляя собой более надежную альтернативу единственному пользователю с зашифрованными учетными данными, встроенными в файл конфигурации. Таким образом, если вам нужно изменить или удалить учетные данные одного пользователя, это не повлияет на доступ других пользователей.

Чтобы настроить профиль AWS, обновите переменную окружения:

export AWS_PROFILE=YOUR_AWS_PROFILE

Copy-icon

где YOUR_AWS_PROFILE - это профиль AWS, который вы хотите использовать для хранилища blob-объектов. Смотрите здесь дополнительные сведения о настройке профилей AWS.

При использовании профиля AWS вы можете удалить раздел <credentials /> в файле конфигурации хранилища BLOB-объектов.

Не забудьте перезапустить DC CMS, чтобы внесенные вами изменения вступили в силу

Использование сервисных ролей AWS

DC CMS поддерживает доступ к AWS без использования ключей доступа/секретных ключей через настройку ролей служб AWS на вашем компьютере.

Чтобы сделать это, следуйте указаниям, предоставленным здесь, по привязке роли IAM к вашему экземпляру.

Убедитесь, что вы удалили раздел <credentials /> из файла конфигурации вашего blob-хранилища.

Публикация активов из BLOB-хранилища

DC CMS упрощает управление активами во внешнем хранилище, используя механизмы рабочего процесса и публикации. Это позволяет загружать активы во внешнее хранилище для предварительного просмотра. После этого эти активы могут быть опубликованы либо в рабочее, либо в тестовое окружение во внешнем хранилище. В результате внешние активы становятся доступными для доставки только после прохождения процесса публикации во внешнее хранилище live.

Внешнее хранилище может быть размещено в облаке, таком как AWS S3, или в любом другом внешнем хранилище, не связанном с местоположением установки DC CMS.

Настройка внешнего хранилища

В боковой панели нажмите на Инструменты сайта, а затем перейдите в Конфигурация > Хранилище BLOB-объектов и заполните нужную информацию:

<blobStore>
  <id/>
  <type/>
  <pattern/>
  <mappings>
    <mapping>
      <publishingTarget/>
      <storeTarget/>
      <prefix/>
    </mapping>
  </mappings>
  <configuration/>
</blobStore>

Copy-icon

Подробнее о файле конфигурации BLOB-хранилища можно узнать выше.

После настройки конфигурации хранилища blob-объектов вы можете использовать внешнее хранилище для загрузки, используя различные методы загрузки, предоставляемые CMS Studio, и публикации в режиме реального времени или промежуточной публикации, если это настроено.

Настройка тестового окружения для существующих проектов

При внедрении промежуточной цели публикации (например: staging) в уже существующий проект, который использует внешнее хранилище, CMS Studio не дублирует активы из внешнего хранилища в окружении live в промежуточное окружение (staging). Кроме того, выполнение массовой публикации в промежуточное окружение (staging) в этот момент оказывается неэффективным. Корневая причина заключается в неспособности CMS Studio публиковать активы в промежуточное окружение (staging), когда они находятся в состоянии LIVE и UNEDITED.

Для синхронизации внешнего хранилища для промежуточного окружения (staging) с окружением live, необходимо вручную скопировать активы из внешнего хранилища окружения live во внешнее хранилище промежуточного окружения (staging).

Рассмотрим пример добавления промежуточного окружения (staging) в существующий проект.

Предварительные требования:

  1. Убедитесь, что проект создан с использованием шаблона "Web Blog", с настройкой внешнего хранилища для окружения live и уже опубликованными активами в окружении live.

  2. Имейте готовый к использованию бакет AWS S3 для промежуточного окружения (staging). В нашем примере мы будем использовать бакет my-staging, настроенный в AWS S3.

Следуйте этим шагам:

1. Включите промежуточное окружение (staging) в CMS Studio. Для этого на боковой панели нажмите на Инструменты сайта, затем перейдите в Конфигурация > Конфигурация проекта и установите для enable-staging-environment значение true.

<published-repository>
  <enable-staging-environment>true</enable-staging-environment>
  <staging-environment>staging</staging-environment>
  <live-environment>live</live-environment>
</published-repository>

Copy-icon

Подробнее о промежуточном (staging) окружении можно узнать здесь.

2. Настройте BLOB-хранилище в CMS Studio. На боковой панели нажмите на Инструменты сайта, затем перейдите в Конфигурация > Хранилище BLOB-объектов и заполните необходимую информацию, чтобы настроить бакет S3 для промежуточного окружения (staging).

<mapping>
  <publishingTarget>staging</publishingTarget>
  <storeTarget>my-staging</storeTarget>
</mapping>

Copy-icon

Узнать подробнее о настройке BLOB-хранилища можно выше.

3. Скопируйте активы из live окружения в промежуточную во внешнем хранилище. В консоли AWS скопируйте содержимое бакета доставки. Вставьте скопированное в промежуточный бакет my-staging. Внешнее хранилище live окружения и промежуточного (staging) окружения теперь синхронизированы.

Связанные статьи  Copy-icon

 

Конфигурации