Cloudflare R2: التنقل في إعداداته ومعالجة أخطاء التكوين

مرحباً بالجميع،

أردت مشاركة تجربتي والخطوات التي اتبعتها لتهيئة Cloudflare R2 بنجاح لكل من التحميلات والنسخ الاحتياطي في منتدى Discourse الخاص بي. آمل أن يساعد هذا الآخرين الذين يتطلعون إلى استخدام Cloudflare R2 مع Discourse.

نظرة عامة على الإعداد:

  • المنصة: Discourse (تثبيت Bitnami)
  • الدلو (Bucket): Cloudflare R2
  • نطاق مخصص: تم إعداده لتقديم الملفات بشكل عام
  • التهيئة: تم إجراؤها بالكامل من خلال إعدادات موقع Discourse (لم يتم المساس بمتغيرات البيئة)

دليل خطوة بخطوة:

  1. إنشاء دلو Cloudflare R2:
    • قم بتسجيل الدخول إلى حساب Cloudflare الخاص بك وانتقل إلى تخزين R2.
    • أنشئ دلوًا جديدًا لتحميلات Discourse الخاصة بك (على سبيل المثال، forum-uploads).
    • دوّن عنوان URL لواجهة برمجة تطبيقات S3 للدلو، ومعرف مفتاح الوصول، والمفتاح السري للوصول.
  2. إعداد نطاق مخصص لشبكة توصيل المحتوى (CDN):
    • لتقديم محتوى دلو R2 الخاص بك بشكل عام، أنشئ نطاقًا مخصصًا في Cloudflare.
    • على سبيل المثال، استخدمت forumfiles.example.in.
    • تأكد من تكوين إعدادات DNS للإشارة إلى CNAME المقدم من Cloudflare. نظرًا لأن لدي نطاقًا على Cloudflare، فقد قام بذلك تلقائيًا.
  3. تهيئة إعدادات موقع Discourse:
    • s3_bucket: اسم دلو R2 الخاص بك (على سبيل المثال، forum-uploads).
    • s3_region: اضبطه على شرق الولايات المتحدة (شمال فيرجينيا). لم يكن هناك خيار تلقائي.
    • s3_endpoint: استخدم عنوان URL لواجهة برمجة تطبيقات S3 للدلو المقدم من Cloudflare (على سبيل المثال، https://\u003cyour-bucket-unique-id\u003e.r2.cloudflarestorage.com).
    • s3_access_key_id: معرف مفتاح الوصول الخاص بـ R2.
    • s3_secret_access_key: المفتاح السري للوصول الخاص بـ R2.
    • s3_cdn_url: النطاق المخصص لشبكة توصيل المحتوى (CDN) (على سبيل المثال، https://forumfiles.example.in).
    • تأكد من تحديد مربعي تمكين النسخ الاحتياطي لـ S3 وتمكين التحميلات لـ S3.
  4. ضبط الأذونات و CORS:
    • اضبط دلو R2 الخاص بك على خاص وقم بتكوين سياسة CORS:
[
  {
      "AllowedHeaders": ["*"],
      "AllowedMethods": ["GET", "POST", "PUT", "HEAD"],
      "AllowedOrigins": ["*"],
      "ExposeHeaders": ["ETag"],
      "MaxAgeSeconds": 3000
  }
]
  • يضمن هذا أن التحميلات تعمل بشكل صحيح دون مشاكل CORS.
  1. اختبار الإعداد:
    • قم بتحميل ملف أو صورة اختبار عبر منتدى Discourse الخاص بك للتحقق من أن التحميلات تعمل بشكل صحيح.
    • تحقق مما إذا كانت الملفات متاحة عبر النطاق المخصص الخاص بك (على سبيل المثال، https://forumfiles.example.in/original/1X/...).
    • تحقق من النسخ الاحتياطي، تمكنت من تنفيذ النسخ الاحتياطي بنجاح. تم التحقق المتقاطع في دلو R2 وهو مدرج أيضًا في إعدادات الموقع.

الخلاصة:

باتباع هذه الخطوات، تمكنت من دمج Cloudflare R2 مع Discourse بسلاسة، والتعامل مع كل من التحميلات والنسخ الاحتياطي بكفاءة. إذا كانت لديك أي أسئلة أو واجهت مشكلات، فلا تتردد في طرحها!

6 إعجابات