Внешнее хранилище

Как изменить место хранения ваших записей по умолчанию.

Внешнее хранилище

Записи сессий OpenReplay по умолчанию хранятся на вашем экземпляре, но место назначения можно изменить на любой объектный сервис хранения, совместимый с S3, что обеспечивает большую масштабируемость и более низкие затраты на развёртывание.

Изменение места хранения записей

Section titled Изменение места хранения записей

Записи могут сохраняться в любом объектном хранилище при условии его совместимости с S3, что делает OpenReplay совместимым со всеми основными публичными облачными сервисами. Ниже приведены шаги по настройке другого места назначения для ваших записей:

Создание необходимых бакетов

Section titled Создание необходимых бакетов

Вы должны создать указанные ниже бакеты в вашем объектном сервисе хранения. Их имена могут отличаться, но в остальной части этого раздела мы будем использовать следующие обозначения:

  • openreplay-recordings: где будут храниться записи
  • openreplay-assets: куда будут копироваться ресурсы (такие как css и шрифты)
  • openreplay-sourcemaps: для хранения source maps (см. как их загрузить)
  • openreplay-spots: для хранения записей spot

После создания бакета:

  1. Включите CORS для каждого из перечисленных выше бакетов. Если вы используете AWS, это находится в разделе ‘Permissions > Cross-origin resource sharing (CORS)’ со следующей конфигурацией:
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]
  1. Включите публичный доступ только к бакету openreplay-assets. Последний содержит только таблицы стилей, иконки и шрифты, необходимые для корректного воспроизведения сессий. Если вы используете AWS, сначала перейдите в ‘Permissions > Block public access (bucket settings)’ и отключите эту опцию, затем перейдите в ‘Permissions > Bucket policy’ и используйте следующую конфигурацию:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::openreplay-assets/*"
        }
    ]
}
  1. Наконец, обязательно сгенерируйте соответствующие ключи доступа только к этим 4 бакетам, чтобы бэкенд OpenReplay мог программно получать к ним доступ для загрузки файлов. Требуемые разрешения S3:
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectTagging",
"s3:ListBucket",
"s3:PutObjectTagging",
"s3:GetBucketLocation"

Обновление сервисов бэкенда

Section titled Обновление сервисов бэкенда
  1. Войдите в ваш экземпляр OpenReplay и выполните openreplay -e, чтобы обновить указанные ниже переменные окружения в разделе s3:
ПеременнаяОписание
accessKeyКлюч доступа вашего объектного хранилища (ваш ID ключа доступа IAM, если вы используете AWS; в Google Cloud это будет ваш HMAC-ключ для сервисного аккаунта)
secretKeyСекрет вашего объектного хранилища
endpointURL (начинающийся с https) вашего объектного сервиса хранения (то есть проверьте список эндпоинтов S3, если вы используете AWS; в Google Cloud Storage это будет https://storage.googleapis.com)
regionРегион (если применимо) ваших бакетов (то есть если вы используете AWS S3, это будет что-то вроде us-east-1)
assetsBucketИмя бакета ресурсов (то есть openreplay-assets)
recordingsBucketИмя бакета записей (то есть openreplay-recordings)
sourcemapsBucketИмя бакета source maps (то есть openreplay-sourcemaps)
spotsBucketИмя бакета spot (то есть openreplay-spots)
  1. Сохраните и выйдите, используя :wq, чтобы изменения вступили в силу

Теперь вновь записанные сессии должны сохраняться и извлекаться (при воспроизведении) из вашего нового места назначения/объектного сервиса хранения.

В случае любых проблем подключайтесь к нашему Slack или посетите наш Форум и получите помощь от нашего сообщества.