Внешнее хранилище
Записи сессий OpenReplay по умолчанию хранятся в вашем экземпляре, но место их хранения можно изменить на любой объектный сервис хранения, совместимый с S3, что обеспечивает большую масштабируемость и снижает затраты на развёртывание.
Изменение места хранения записей
Section titled Изменение места хранения записейЗаписи могут сохраняться в любом объектном хранилище, если оно совместимо с S3, что делает OpenReplay совместимым со всеми основными публичными облачными сервисами. Ниже приведены шаги для настройки другого места хранения ваших записей:
Создание необходимых бакетов
Section titled Создание необходимых бакетовВы должны создать перечисленные ниже бакеты в вашем объектном сервисе хранения. Их имена могут быть другими, но в остальной части этого раздела мы будем использовать следующие обозначения:
openreplay-recordings: где будут сохраняться записиopenreplay-assets: куда будут копироваться ресурсы (такие как css и шрифты)openreplay-sourcemaps: для хранения source maps (см. как их загрузить)
После создания бакета:
- Включите 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/*"
}
]
}
- Наконец, обязательно сгенерируйте соответствующие ключи доступа только к этим 3 бакетам, чтобы бэкенд OpenReplay мог программно обращаться к ним для загрузки файлов. Необходимые разрешения S3:
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectTagging",
"s3:ListBucket",
"s3:PutObjectTagging",
"s3:GetBucketLocation"
Обновление сервисов бэкенда
Section titled Обновление сервисов бэкенда- Войдите в ваш экземпляр OpenReplay и выполните
openreplay -e, чтобы обновить указанные ниже переменные окружения в разделеs3:
| Переменная | Описание |
|---|---|
| accessKey | Ключ доступа вашего объектного хранилища (ваш идентификатор ключа доступа 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) |
- Сохраните и выйдите с помощью
:wq, чтобы изменения вступили в силу
Теперь вновь записываемые сессии должны храниться и извлекаться (при воспроизведении) из вашего нового места хранения/объектного сервиса хранения.
Есть вопросы?
Section titled Есть вопросы?Если вы столкнулись с какими-либо проблемами, присоединяйтесь к нашему Slack или посетите наш Форум и получите помощь от нашего сообщества.