يُعد MinIO حلاً لخادم تخزين الكائنات متوافقًا مع S3، وهو مخصص للسحابة بشكل افتراضي، لكنه سهل النشر على الخوادم المحلية أو خوادم VPS أو خوادم السحابة لاستخدامه كبديل لـ Amazon AWS S3 أو أنظمة أخرى، وهو متوافق مع Discourse عند إعداده بشكل صحيح.
يفترض هذا القسم صحة ما يلي في بيئتك:
لديك مثيل خادم MinIO مُعد بالكامل
تم تمكين دعم النطاقات في تكوين MinIO
تم إعداد تكوين DNS بشكل صحيح لـ MinIO بحيث تحل عناوين النطاقات الفرعية للوعاء بشكل صحيح إلى خادم MinIO
يوجد الوعاء discourse-data على خادم MinIO وتم تعيين سياسة “عامة” عليه
يوجد الوعاء discourse-backups على خادم MinIO وهو وعاء خاص لرفع الملفات إليه (وليس قابلاً للوصول للعامة - السياسة الافتراضية للأوعية الجديدة)
عنوان URL الخاص بـ S3 CDN هو خدمة CDN مُعدة بشكل صحيح تشير إلى الوعاء وتُخزن الطلبات مؤقتًا، كما ذُكر سابقًا في هذه الوثيقة.
إذا كانت جميع المتطلبات المذكورة أعلاه متوفرة، فأنت جاهز للعمل.
لقد عملت بنجاح مع كل من خزانات نمط النطاق الفرعي ونمط المسار لفترة من الوقت. ومع ذلك، يُعد مكون تكوين DNS هو المكون الأكثر إيلامًا — فهو يحتاج إلى قواعد DNS واسعة النطاق (wildcard) خاصة ليعمل، أو إلى خادم DNS مخصص يدرك بفعالية جميع الخزانات الفعلية أو لا. لقد قمت بذلك في bind9 باستخدام مناطق واسعة النطاق، لكن محاولة تطبيق ذلك في Cloudflare أو غيره مع أجزاء نمط النطاق الفرعي تؤدي إلى فشل حاد.
إذا كنت تعتقد أن ما سبق مناسب للوضع في هذا القسم، فسأكون سعيدًا بإدراجه. لكنه سيتضمن قسم ‘التحذيرات’، وسأقدّر أي تعديلات أو مراجعات تود أن أقوم بها أولاً من حيث الصياغة وما إلى ذلك. (ولاحظ أنني لم أدرج عنوان URL لشبكة CDN لأنني لا أمتلك شبكة CDN في نشراتي (لأن $$$ ليست شيئًا يمكنني تجربته).
يمكن للمستخدمين الذين يشغّلون MinIO لغرض Discourse فقط أيضًا إنشاء إدخالات DNS للدلاء (buckets) الخاصة بـ Discourse يدويًا، أليس كذلك؟
يجب أن يكون التحذير المذكور في هذا الموضوع كافيًا. فإعداد MinIO يقع خارج نطاق هذا المنتدى تمامًا، ولكن بالنظر إلى وجود MinIO يعمل بشكل صحيح، فإن جعل Discourse يستخدمه يُعد حالة استخدام صالحة.
صحيح، ولكن كما ذكرت، فإن الإعدادات خارج نطاق العمل، لذا سأكتفي بالإشارة إلى أنه يجب أن تحل عناوين فرعية للحاويات (وأترك إعدادات DNS لمسؤولي ${ADMINS} للنسخة)
نعم، وقد قمت بتعديل الويكي وفقًا لذلك. ومع ذلك، لا تعمل MinIO (بحسب علمي) كخدمة سحابية، لذا تركت حقل “اسم الخدمة” في جدول محتويات الويكي في البداية فارغًا. يمكنك تعديله وفقًا لاحتياجاتك إذا رغبت في ذلك.
لقد قمت أيضًا بتعديله، حيث أن المزوّد هو ذاتي الاستضافة، لكن قسم MinIO لا يزال مرتبطًا. يجب أن يحل هذا المشكلة المتعلقة بعدم وجود حل سحابي مقدم من المزوّد، وهو ما لم أستطع العثور عليه حتى الآن. (يمكنك إغلاق هذا الموضوع الآن إذا رغبت، حيث تم دمجه في منشور الويكي)
تم اكتشاف أيضًا (شكرًا لكود المصدر المفتوح والوثائق الجيدة لـ MinIO!) أن CORS مفعّل افتراضيًا بالفعل على جميع أفعال HTTP الخاصة بـ MinIO، لذا لا حاجة لتثبيت قواعد CORS، فهي موجودة مسبقًا. كما تم تحديث قسم MinIO المستضاف ذاتيًا، بالإضافة إلى بعض التعديلات النحوية.
شكرًا لـ @Falco على المساعدة في تتبع المشكلة التي لاحظتها أثناء بناء/إعادة بناء التطبيق، وعلى التوجيه الأساسي بشأن إعداد CDN مع StackPath (لأنني أردت اختبارًا وظيفيًا بالكامل، ولدي بالفعل CDN من StackPath لاستخدام آخر، لذا استخدمت مكدس CDN للتأكد من أن كل شيء يعمل بشكل صحيح!)
لا أفهم كيفية ضبط نمط المسار الإجباري. عندما أقوم بإعداد الإصدار 2.6.8 مع minio عبر إعدادات S3، فإنه يضيف دائمًا اسم الحاوية إلى نقطة نهاية S3، حيث يجب أن يلحقها كمسار بعد نقطة نهاية S3.
يبدو أيضًا من عينة التكوين على github أنه تمت إزالة الخيار s3_force_path_style. هل فاتني شيء؟ شكرا لك.
@ceelian
يستخدم Discourse وضع DNS، وليس وضع المسار، لـ S3. لقد كان كذلك لفترة طويلة، ولهذا السبب لا أحدد أي شيء عن وضع المسار في كيفية القيام بذلك أو صفحة كيفية تخزين S3. يجب عليك أيضًا تعلم كيفية إنشاء مواضيع جديدة بدلاً من إحياء موضوع قديم لشيء غير ذي صلة.
@teward شكراً على ملاحظاتك. آسف على إحياء الموضوع، أنا معتاد على طريقة كتابة GitHub issues سأبدأ موضوعًا جديدًا حول كيفية استخدام discourse S3 في وضع المسار.
لديك دعم النطاق ممكّن في تكوين MinIO، لعناوين URL الخاصة بالحاويات التي تعتمد على النطاق. هذا إلزامي وليس خيارًا، لا يوجد دعم قائم على المسار في Discourse لمسارات الحاويات.
منذ فترة طويلة عندما كنت أعمل مع Discourse لأول مرة، كان لديهم هذا الخيار، ثم تمت إزالته، واضطررت إلى التوقف عن استخدام MinIO كواجهة خلفية. الآن، نظرًا لوجود وثائق في MinIO حول كيفية عمل وضع DNS (أي مسارات الحاويات[.]الخادم[.]com الآن مثل S3)، فإنه يعمل عند تكوين MinIO بشكل صحيح. (شكرًا للموظفين/المشرفين/النظام لرفع مستوى الثقة لدي لتعديل الويكي نفسه الآن).