أحاول إعداد Discourse لاستخدام تخزين الكائنات المتوافق مع S3 من Scaleway، لكنني لا أستطيع جعله يعمل ولا أعرف أين تكمن المشكلة.
لقد تحققت من أن كلا الخزانين يعملان باستخدام aws-cli، وأن إعدادات CORS مضبوطة بشكل صحيح باتباع الوثائق الرسمية من Scaleway، لذا لا أعتقد أن المشكلة في الخزانين نفسيهما.
إليك إعدادات S3 الخاصة بـ Discourse (تم حذف جزء من اسم الخزان):
عند فتح علامة التبويب “النسخ الاحتياطي”، أرى الرسالة: “فشل في سرد النسخ الاحتياطية من S3: Aws::S3::Errors::BadRequest”.
وعند محاولة رفع صورة، أرى في السجل: “استثناء في المهمة: فشل في فتح اتصال TCP إلى [مخفي]-discourse-files.s3.fr-par.amazonaws.com:443 (getaddrinfo: الاسم أو الخدمة غير معروف)”.
أستخدم أحدث إصدار من Discourse - 2.4.0.beta10 (14ae574bc5).
@Falco نعم، أنا محير أيضاً.
الخطأ مع عنوان URL الذي يحتوي على amazonaws خاص برفع الملفات، وليس بالنسخ الاحتياطية. بالنسبة للنسخ الاحتياطية، أحصل فقط على الخطأ العام، لذا أعتقد أن كليهما معطل بسبب مشكلة عنوان URL.
هل يمكنك التفكير في أي شيء آخر؟
@pfaffman شكراً للنصيحة - سأرى ما إذا كان تغيير إصدار الـ gem يساعد.
مرحبًا @FroggyC،
في الواقع، لم يتبق لي وقت كافٍ لتصحيح هذا الخطأ، لذا لم أجرب تغيير إصدارات الجيم (gem) في النهاية. لقد انتقلت إلى استخدام Amazon S3 بناءً على الوثائق الرسمية، وعملت الأمور على الفور.
آسف لأن الأخبار ليست أفضل…
أنت توحي بأن الخطأ يقع على عاتقهم، ومع ذلك حتى الآن كنت تتجاهل تعليق @dino:
طالما أن عنوان URL لـ s3_endpoint (غير المُعدَّل) لا يُستخدم كما هو، فسيكون من الصعب إقناع Scaleway بأن الخطأ من جانبهم. خاصةً أن عملاء S3 الآخرين قادرين على الاتصال.
إذن، كيف يمكنني إخبار discourse بتسجيل محاولات الاتصال بـ S3؟ بمجرد أن نعرف بالتأكيد العنوان URL الذي يريد الاتصال به، يمكنني اعتراض حركة المرور ومشاركة النتائج.
السبب في عدم عمل تحميل/نسخ احتياطي S3 هو المنطقة التي يجب تعيينها إلى fr-par (أو nl-ams)، وهو ما يمكن فعله فقط بتجاوز تحقق إعدادات الموقع في Discourse:
بطبيعة الحال، هذا حل مؤقت، وبمجرد إعادة تعيين أو تغيير إعداد الموقع هذا عبر لوحة المسؤول على الويب، لا يمكنك إعادته إلى حالة عمل (إلا باستخدام وحدة تحكم Rails مرة أخرى).
أظن أن عميل AWS/S3 يسمح جميعه بتعيين سلسلة منطقة صراحةً (عكس الحالة الحالية في لوحة المسؤول على الويب).
كما أن الأمر مضلل نوعًا ما في حالة قيمة القائمة المنسدلة “EU (Paris)” في Discourse، لأن هذا يشير إلى مخطط تسمية AWS eu-west-3 (أو ما شابه ذلك) وليس القيمة المتوقعة لـ Scaleway.
أهلاً. هل نحتاج إلى حقل إعدادات موقع خاص بـ “منطقة متوافقة مع S3” @falco؟ هذا سيسمح للمستخدمين بإدخال مناطق عشوائية تماماً (وبالتالي “مُخترعة” من منظور أمازون).