التخزين الخارجي

كيفية تغيير وجهة التخزين الافتراضية لتسجيلاتك.

التخزين الخارجي

تُخزَّن تسجيلات الجلسات في OpenReplay افتراضيًا على نسختك (instance)، ولكن يمكن تغيير الوجهة إلى أي خدمة تخزين كائنات متوافقة مع S3، مما يتيح قابلية توسّع أكبر وتكاليف نشر أقل.

تغيير وجهة تخزين التسجيلات

Section titled تغيير وجهة تخزين التسجيلات

يمكن الاحتفاظ بالتسجيلات في أي وجهة تخزين كائنات طالما كانت متوافقة مع S3، مما يجعل OpenReplay متوافقًا مع جميع خدمات السحابة العامة الرئيسية. فيما يلي خطوات إعداد وجهة مختلفة لتسجيلاتك:

إنشاء الحاويات (buckets) اللازمة

Section titled إنشاء الحاويات (buckets) اللازمة

يجب عليك إنشاء الحاويات (buckets) التالية في خدمة تخزين الكائنات لديك. يمكن أن تكون أسماؤها مختلفة، لكننا سنستخدم المراجع التالية في بقية هذا القسم:

  • openreplay-recordings: حيث سيتم الاحتفاظ بالتسجيلات
  • openreplay-assets: حيث سيتم نسخ الأصول (مثل css والخطوط)
  • openreplay-sourcemaps: لتخزين خرائط المصدر (source maps) (انظر كيفية رفعها)

بمجرد إنشاء الحاوية:

  1. فعّل CORS لكل حاوية من الحاويات المذكورة أعلاه. إذا كنت تستخدم AWS، فسيكون ذلك ضمن ‘Permissions > Cross-origin resource sharing (CORS)’ باستخدام الإعداد التالي:
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]
  1. فعّل الوصول العام إلى حاوية openreplay-assets فقط. تحتوي هذه الأخيرة فقط على أوراق الأنماط (stylesheets) والأيقونات والخطوط المطلوبة لإعادة تشغيل الجلسات بشكل صحيح. إذا كنت تستخدم 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. أخيرًا، تأكد من إنشاء مفاتيح الوصول المناسبة لهذه الحاويات الثلاث فقط حتى يتمكن الواجهة الخلفية (backend) لـ OpenReplay من الوصول إليها برمجيًا لرفع الملفات. أذونات S3 المطلوبة هي:
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectTagging",
"s3:ListBucket",
"s3:PutObjectTagging",
"s3:GetBucketLocation"

تحديث خدمات الواجهة الخلفية (backend)

Section titled تحديث خدمات الواجهة الخلفية (backend)
  1. سجّل الدخول إلى نسخة 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اسم حاوية خرائط المصدر (أي openreplay-sourcemaps)
  1. احفظ واخرج باستخدام :wq لكي تدخل التغييرات حيز التنفيذ

من المفترض الآن أن يتم تخزين الجلسات المسجّلة حديثًا واستردادها (عند إعادة تشغيلها) من وجهتك/خدمة تخزين الكائنات الجديدة.

إذا واجهت أي مشكلات، يُرجى الانضمام إلى Slack الخاص بنا أو زيارة المنتدى للحصول على المساعدة من مجتمعنا.