استغرق مني وقتًا طويلًا جدًا لفهم كيفية القيام بكل هذا، لذا أردت إعداد هذا الدليل لتسهيل الأمر على الآخرين. يُفترض أن خدمة الصور بهذه الطريقة تجعل موقعك الإلكتروني يعمل بسرعة أكبر. إعدادي لـ Discourse يجمع بين DigitalOcean droplet و BackBlaze B2 S3 و BunnyCDN والإصدار المجاني من Cloudflare.
اخترت هذه الخدمات بعد إجراء بعض الأبحاث حول الموثوقية والأسعار والمعايير. بدا أنها الخيارات الأفضل بالنسبة لي. تساعد Cloudflare في الأمان، لكنها قد تبطئ الموقع قليلاً حسب فهمي، لذا يجب عليك البحث في ذلك. لدى Backblaze شراكات مع كل من Cloudflare و Bunny تسمح بنقل البيانات مجانًا.
على الرغم من أن Cloudflare تُسمى CDN، إلا أنها لا تعمل مثل شبكات CDN العادية، وعلى الأرجح لن تعمل بمفردها لإعداد S3 مع Discourse. قد تحتاج إلى مزود CDN آخر، و Bunnycdn يعمل بشكل جيد معي. إذا نجح شخص ما في ذلك باستخدام Cloudflare فقط، فأخبرني كيف ![]()
كيفية تعيين الرفع إلى S3:
أولاً، يجب عليك التسجيل في Backblaze، ثم إنشاء buckets، وإدخال التفاصيل في إعدادات Discourse:
ثم قم بالتسجيل في BunnyCDN واتبع هذا الدليل:
bunny.net - The Global Edge Platform that truly Hops (رابط إحالة، أحصل على رصيد بقيمة 20 دولارًا في فواتيري)
بعد إنشاء منطقة السحب (pull zone) الخاصة بك في BunnyCDN، تحتاج إلى الحصول على عنوان URL الصحيح لإدخاله في إعدادات لوحة تحكم Discourse الإدارية لـ “s3 cdn url”. اذهب إلى لوحة تحكم bunnycdn > مناطق السحب > إدارة مناطق السحب > انقر على منطقتك > انسخ عنوان URL بجانب “اسم المضيف”.
يجب أن يشبه عنوان URL شيئًا مثل: example.b-cdn.net، لكن يجب أن تتأكد من وضع https:// في المقدمة مثل هذا: https://example.b-cdn.net
احفظ التغييرات في منطقة إعدادات لوحة تحكم Discourse.
اضغط على ctrl+f5 مرتين في متصفحك على موقع Discourse.
قم بإجراء اختبار عن طريق رفع صورة في محرر النصوص في Discourse. افحص عنصر الصورة الاختبارية أو عرض مصدر الصورة للتأكد من نجاح العملية. يجب أن يبدو عنوان URL مختلفًا عن نطاقك العادي، ويجب أن يكون شيئًا مثل example.b-cdn.net / اسم الملف.
الآن، في كل مرة يرفع فيها شخص ما صورة، ستكون في bucket Backblaze ولن تشغل مساحة على DigitalOcean droplet ![]()
نسخ احتياطي للرفع إلى S3
إذا كنت ترغب في إعداد نسخ احتياطية لـ Discourse لتذهب إلى bucket Backblaze، فعليك القيام بما يلي:
في الدليل الذي نشرته سابقًا في هذا الموضوع، انتبه إلى كيفية شرحه أنك تحتاج إلى bucketين منفصلين. bucket واحد عام، وهو bucket الرفع الخاص بك لرفع المستخدمين للصور على منتداك. والـ bucket الآخر خاص، وهو bucket النسخ الاحتياطي الخاص بك. من المهم عمل نسخ احتياطية آلية لـ Discourse في حالة حدوث أي خلل، ثم يمكنك تحميل النسخ الاحتياطي وإصلاحه.
في لوحة تحكم BunnyCDN، يجب إنشاء منطقة سحب (pull zone) ثانية. كانت منطقة السحب الأولى للرفع، وهذه المنطقة الجديدة ستكون للنسخ الاحتياطي.
لوحة تحكم bunnycdn > مناطق السحب > إضافة منطقة سحب
اتبع نفس الدليل الذي ربطت به سابقًا، “كيفية تسريع تسليم ملفات Backblaze B2 باستخدام BunnyCDN”، ولكن هذه المرة ستربط منطقة السحب الجديدة بـ bucket النسخ الاحتياطي بدلاً من bucket الرفع.
أوصي باستخدام “الطبقة عالية الحجم 5$/TB” في صفحة إنشاء منطقة السحب في BunnyCDN، أعتقد أن النسخ الاحتياطي لا يحتاج إلى الطبقة الأغلى/الأسرع “الطبقة القياسية 10$/TB” التي استخدمتها لـ bucket الرفع.
اضبط إعدادات النسخ الاحتياطي في منطقة إعدادات لوحة تحكم Discourse. يجب أن تكون “موقع النسخ الاحتياطي” مضبوطة على S3، ويجب أن يشير “نقطة نهاية S3” إلى ما لديك في Backblaze، مثل هذا:
s3.us-west-002.backblazeb2.com
اضغط على CTRL+F5 مرتين على موقعك الإلكتروني لمسح الذاكرة المؤقتة.
ابدأ نسخة احتياطية، ودعها تكتمل. ثم انتظر 5 دقائق وتحقق من مجلد النسخ الاحتياطي في Backblaze، يجب أن ترى النسخة الاحتياطية الجديدة هناك.
ترحيل الصور الأقدم:
هذه الخطوة اختيارية ولكنها موصى بها، خاصة إذا كانت مساحة التخزين على خادمك منخفضة. إذن لقد قمت بإعداد كل شيء للرفع الجديد للصور، ولكن يمكن أيضًا نقل الصور الأقدم إلى buckets الخاصة بك. لجعل هذه العملية تعمل، يجب عليك اتباع ما يلي:
إعداد Cloudflare CDN
هذه الخطوة اختيارية لأن Backblaze حصلت على شراكة تجعل نقل البيانات إلى Bunny مجانيًا أيضًا، ولكن للأمان الإضافي والميزات الأخرى، يمكنك جعل البيانات تمر عبر Cloudflare أولاً، ثم تجعل Bunny تسحب البيانات من حيث تتركها Cloudflare.
https://help.backblaze.com/hc/en-us/articles/217666928-Using-Backblaze-B2-with-the-Cloudflare-CDN


