Внешнее хранилище
Записи сессий OpenReplay по умолчанию хранятся на вашем экземпляре, но место хранения можно изменить на любой сервис объектного хранения, совместимый с S3, что обеспечивает большую масштабируемость и более низкие затраты на развёртывание.
Изменение места хранения записей
Section titled Изменение места хранения записейЗаписи можно сохранять в любом объектном хранилище, если оно совместимо с S3, что делает OpenReplay совместимым со всеми основными публичными облачными сервисами. Ниже приведены шаги для настройки другого места хранения ваших записей:
Создание необходимых бакетов
Section titled Создание необходимых бакетовВы должны создать указанные ниже бакеты в вашем сервисе объектного хранения. Их имена могут отличаться, но в оставшейся части этого раздела мы будем использовать приведённые ниже обозначения:
openreplay-recordings: где будут сохраняться записиopenreplay-assets: куда будут копироваться ресурсы (такие как css и шрифты)openreplay-sourcemaps: для хранения source maps (см. как их загружать)openreplay-spots: для хранения записей spot
После создания бакета:
- Включите CORS для каждого из перечисленных выше бакетов. Если вы используете AWS, это находится в разделе ‘Permissions > Cross-origin resource sharing (CORS)’ со следующей конфигурацией:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
- Включите публичный доступ только к бакету
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/*"
}
]
}
- Наконец, убедитесь, что вы сгенерировали соответствующие ключи доступа только к этим 4 бакетам, чтобы бэкенд OpenReplay мог программно обращаться к ним для загрузки файлов. Требуемые разрешения S3:
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectTagging",
"s3:ListBucket",
"s3:PutObjectTagging",
"s3:GetBucketLocation"
Обновление сервисов бэкенда
Section titled Обновление сервисов бэкенда- Войдите в свой экземпляр OpenReplay и выполните
openreplay -e, чтобы обновить приведённые ниже переменные окружения в разделеs3:
| Переменная | Описание |
|---|---|
| accessKey | Ключ доступа вашего объектного хранилища (ваш ID ключа доступа IAM, если вы используете AWS; в Google Cloud это будет ваш ключ HMAC для сервисного аккаунта) |
| secretKey | Секрет вашего объектного хранилища |
| endpoint | URL (начинающийся с 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) |
- Сохраните и выйдите с помощью
:wq, чтобы изменения вступили в силу
Вновь записанные сессии теперь должны храниться и извлекаться (при воспроизведении) из вашего нового места хранения/сервиса объектного хранения.
Есть вопросы?
Section titled Есть вопросы?В случае возникновения каких-либо проблем, пожалуйста, подключитесь к нашему Slack или посетите наш Форум и получите помощь от нашего сообщества.