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

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

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

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

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

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

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

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

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

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

  • 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 فقط. تحتوي هذه الأخيرة فقط على أوراق الأنماط (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السر (secret) الخاص بتخزين الكائنات الخاص بك
endpointعنوان URL (يبدأ بـ https) لخدمة تخزين الكائنات الخاصة بك (أي راجع قائمة نقاط نهاية S3 إذا كنت على AWS، وعلى Google Cloud Storage سيكون هذا https://storage.googleapis.com)
regionالمنطقة (region) (إن وُجدت) لحاوياتك (أي إذا كنت تستخدم AWS S3، فسيكون هذا شيئًا مثل us-east-1)
assetsBucketاسم حاوية الأصول (أي openreplay-assets)
recordingsBucketاسم حاوية التسجيلات (أي openreplay-recordings)
sourcemapsBucketاسم حاوية خرائط المصدر (أي openreplay-sourcemaps)
spotsBucketاسم حاوية spot (أي openreplay-spots)
  1. احفظ واخرج باستخدام :wq كي تدخل التغييرات حيز التنفيذ

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

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