أود أن أسأل عن مشكلة تقنية تتعلق بدعم Discourse لتخزين Amazon S3.
لقد صادفت منشورًا في المنتدى يعود تاريخه إلى عام 2013 يناقش بالفعل دعم Discourse لـ S3. لقد وجدت أيضًا بعض المواضيع المتعلقة بتفريغ CDN، ولكن لا يبدو أن هناك الكثير من المعلومات التفصيلية حول هذا الموضوع.
لقد قمت ببناء منتدى Discourse بنفسي وكنت مثابرًا جدًا بشأن تمكين تحميلات الفيديو. لقد توصلت إلى العديد من الأفكار، ولكن نظرًا لأنني لست مبرمجًا، فقد كان من الصعب تنفيذها - أحتاج دائمًا إلى مساعدة الآخرين للتقدم شيئًا فشيئًا.
يدعم Discourse نفسه تحميلات الفيديو الصغيرة، وقد قمت بالفعل بتمكين هذه الميزة. ومع ذلك، فإن بنية Discourse ليست مناسبة حقًا للتعامل مع تحميلات الفيديو بكفاءة. بعد الكثير من البحث، اكتشفت أنه من الممكن فعليًا استخدام تخزين Amazon S3 مع تفريغ CDN، أو بدلاً من ذلك، تخزين S3 مع إعداد ذاكرة تخزين مؤقت للوكيل.
في الواقع، لقد طلبت بالفعل من صديق مساعدتي في تكوين تخزين S3 والتخزين المؤقت للوكيل. (للتوضيح، لم أفكر في استخدام شبكة توصيل المحتوى (CDN) بسبب مخاوف التكلفة - يمكن أن تكون خدمة شبكة توصيل المحتوى الخاصة بـ Amazon S3 باهظة الثمن).
الآن أواجه مشكلة: أثناء الاختبار، على الرغم من أن تخزين S3 تم تكوينه بشكل صحيح، ومن الناحية النظرية يجب أن تذهب جميع التحميلات من المنتدى مباشرة إلى S3، إلا أن ملفات الفيديو لا تزال غير قادرة على التحميل إلى تخزين S3.
هل يمكن لأي شخص شرح ما قد يكون تم تكوينه بشكل خاطئ أو ما الذي يمكن أن يسبب هذه المشكلة؟
قد ترغب أيضًا في التحقق من الإعدادات “حجم المرفق الأقصى كيلوبايت” و “الامتدادات المصرح بها”، وكلاهما في إعدادات الموقع - الملفات.
يرجى ملاحظة أنه حتى مع شبكة توصيل المحتوى (CDN) و S3، لا يزال هذا الإعداد غير مناسب لمقاطع الفيديو، حيث لا يوجد تحويل ترميز لتقديم أفضل ملاءمة لعرض النطاق الترددي للعميل ودقته.
شكراً جزيلاً على ردك. إليك الوضع:
في الوقت الحالي، يمكن تحميل الصور من منتدى الخاص بنجاح إلى S3، ولكن مقاطع الفيديو لا يمكن. هذا محير جداً بالنسبة لي.
على الرغم من أنني أفهم أن S3 قد لا يكون مثالياً للتعامل مع مقاطع الفيديو، إلا أن المحتوى الرئيسي للمنتدى هو النصوص والصور. ميزة الفيديو موجودة فقط لتلبية احتياجات بعض المستخدمين، ومقاطع الفيديو نفسها لن تكون كبيرة جداً. شكراً جزيلاً على التذكير.
شبكة توصيل المحتوى الخاصة بأمازون أرخص من نقل البيانات من حاويات S3. أنت بالتأكيد تريد شبكة توصيل محتوى أمام حاوية S3 الخاصة بك.
أشك في أن الخطأ الذي لم تخبرنا عنه يتعلق بكون مقاطع الفيديو كبيرة جدًا. هناك إعدادات لتغيير ذلك، ولكن قد يكون من الأفضل تمكين تمكين التحميلات المباشرة إلى S3.
عند محاولة تحميل مقطع فيديو إلى المنتدى الخاص بي، تظهر الرسالة مباشرة:
“عذرًا، هذا الملف كبير جدًا (الحد الأقصى للحجم هو 50 ميجابايت). لماذا لا تقوم بتحميل ملفك الكبير إلى خدمة مشاركة سحابية، ثم تلصق الرابط؟”
ومع ذلك، فإن مقطع الفيديو الخاص بي هو 10 ميجابايت فقط. حاليًا، أستخدم تخزين S3 مع شبكة توصيل المحتوى CloudFront للتسليم.
أجد استكشاف الأخطاء وإصلاحها صعبًا للغاية. هل يمكنك تقديم الإجراء الصحيح بافتراض عدم إجراء أي عمليات سابقة؟ سأطلب من صديقي اتباع الخطوات الصحيحة والمحاولة مرة أخرى.
لقد طلبت بالفعل من صديقي التبديل من طريقة التخزين S+ مع التخزين المؤقت بالوكيل إلى طريقة التخزين S3 + توصيل شبكة توصيل المحتوى CloudFront. ومع ذلك، يبدو أن الأمر قد فشل، ولا أعرف السبب حتى الآن. لذلك كنت أتساءل عما إذا كان بإمكانك تقديم أوامر التنفيذ الدقيقة حتى يتمكن صديقي من المحاولة مرة أخرى.
بالإضافة إلى ذلك، أنا مصمم حقًا على وجود وظيفة الفيديو في منتدى الخاص بي لراحة المستخدمين. لذلك توصلت إلى فكرة جديدة وأود معرفة ما إذا كانت قابلة للتطبيق - آمل حقًا في الحصول على رأيك.
أولاً، يجب أن أوضح أنني لا أملك أي معرفة بالبرمجة أو الترميز. كان تخصصي الجامعي هو اللغة اليابانية، لذلك بصرف النظر عن تعلم اللغة اليابانية، ليس لدي أي فهم حقيقي للكود. إذا بدت بعض أفكاري ساذجة للوهلة الأولى، فيرجى المعذرة.
بفضل الخادم الذي استأجرته لمنتدى الخاص بي والذي توقف عن العمل، اضطررت إلى بذل جهد في إعادة بنائه، مما سمح لي بتعلم النقاط الرئيسية لتخزين S3 وشبكة توصيل المحتوى CloudFront. ثم طبقت هذه المعرفة وتساءلت عما إذا كانت هناك مزودات خدمة تخزين وشبكة توصيل محتوى أخرى. استشرت ChatGPT وكنت سعيدًا بالحصول على الإجابات التي أردتها.
في الواقع، كنت أرغب دائمًا في بناء موقع فيديو، لكنني استسلمت بسرعة بسبب تكاليف الأقراص الصلبة. الآن بعد أن عرفت الحل الجديد، جددت فكرة بناء موقع فيديو لدعم مقاطع الفيديو في منتدى Discourse.
بناءً على توصية GPT، علمت أنه يمكنني استخدام PeerTube أو MediaCMS لنظام موقع الفيديو - كلاهما ممتاز.
لدي حاليًا نقطتان من الشك:
النقطة الأولى: يمكن لكلا نظامي موقع الفيديو دعم تخزين Backblaze B2 مع توصيل شبكة توصيل المحتوى Cloudflare. نظرًا لأن مقاطع الفيديو غير مخزنة على القرص الصلب الخاص بي، فإن تشغيل موقع الفيديو يستدعي بالفعل واجهة برمجة تطبيقات Backblaze B2. ما أريده هو ربط المنتدى بموقع الفيديو، وليس عن طريق نشر الروابط، ولكن باستخدام زر التحميل في المنتدى لاستدعاء موقع الفيديو الخاص بي MediaCMS (على سبيل المثال) كمصدر مباشرة. هذا يعني استدعاءات واجهة برمجة تطبيقات مزدوجة:
يستدعي المنتدى موقع الفيديو MediaCMS.
يستدعي موقع الفيديو MediaCMS تخزين Backblaze B2.
أود أن أعرف ما إذا كانت مثل هذه الاستدعاءات المتكررة لواجهة برمجة التطبيقات ممكنة تقنيًا.
النقطة الثانية: ما إذا كان نظام المنتدى ونظام موقع الفيديو يمكنهما مشاركة نظام حساب المستخدم، بحيث يمكن للمستخدمين استخدام نفس الحساب. هذا يؤثر على كيفية عمل استدعاءات واجهة برمجة التطبيقات.
الخيار 1: بصفتي مسؤول موقع الفيديو، أقوم بتسجيل حساب مسؤول مرتبط بالمنتدى. عندما يقوم المنتدى بتحميل مقطع فيديو عبر واجهة برمجة التطبيقات، فإنه في الواقع يقوم بتحميله بواسطة المسؤول إلى موقع MediaCMS.
الخيار 2: مع نظام حساب مستخدم مشترك، يتم تحميل الفيديو بواسطة حساب المنتدى الخاص بالمستخدم، ويتم مزامنته عبر واجهة برمجة التطبيقات إلى موقع MediaCMS. بعد ذلك يمكن للمستخدم رؤية الفيديو الذي تم تحميله تحت حسابه الخاص على موقع الفيديو.
لقد استشرت GPT بشأن هذه الأساليب، وقدمت GPT ردودًا إيجابية بشكل عام. ومع ذلك، للأسف، في الاستخدام المتكرر، وجدت أن GPT يمكن أن تقدم التوجيه والمساعدة في القرارات رفيعة المستوى، ولكن بالنسبة للإجابات التفصيلية، يمكن أن تكون غير دقيقة في بعض الأحيان. نظرًا لعدم امتلاكي معرفة بالترميز بنفسي، لست متأكدًا مما إذا كانت هذه الأفكار قابلة للتطبيق حقًا.
إذا أمكن، سأكون ممتنًا للغاية إذا أمكنك الإشارة إلى الأجزاء من هذه الأفكار التي يمكن تطبيقها والتي قد لا تكون كذلك.
مرحباً. في الواقع، هذا هو الوضع:
يمكن تحميل مقاطع الفيديو التي تقل مساحتها عن 10 ميجابايت إلى خادمي الخاص، ولكن لا يمكن تحميل ملفات الفيديو نفسها إلى S3.
عند تحميل مقطع فيديو، يلتقط النظام تلقائيًا الإطار الأول كصورة مصغرة، ويمكن تحميل صورة الصورة المصغرة إلى S3.
ومع ذلك، بالنسبة لمقاطع الفيديو التي تزيد مساحتها عن 10 ميجابايت، لا يمكن تحميل أي شيء على الإطلاق.
إذا كان صديقك قد اتبع تكوين موفر تخزين كائنات متوافق مع S3 للتحميلات فلن ترى enable_s3_uploads. من غير الواضح ما إذا كان تعيين هذه في قاعدة البيانات بدلاً من ENV جزءًا من المشكلة.\n\nهذا ليس هو نفسه تمكين التحميلات المباشرة إلى S3. هذا هو "تمكين التحميلات المباشرة إلى S3"\n\nتحتاج أيضًا إلى تغيير الحد الأقصى لحجم الصورة بالكيلوبايت و الحد الأقصى لحجم المرفقات بالكيلوبايت\n\nلكنني غيرت الحد الأقصى للتحميل الخاص بي إلى 100 ميجابايت وحاولت تحميل ملف بحجم 37 ميجابايت وحصلت على خطأ "الملف كبير جدًا"، لذلك قد تكون على حق في وجود خطأ. لم أقم بتحديث الموقع الذي اختبرت فيه منذ فترة."