في موقع كان فيه النسخ الاحتياطي والرفع إلى دلاء Google يعملان بشكل صحيح، تظهر صفحة النسخ الاحتياطي الآن الرسالة التالية:
فشل في الوصول إلى تخزين النسخ الاحتياطي: الرأس أو الاستعلام الذي قدمته يطلب وظيفة غير مُنفّذة.
ظننت في البداية أن المشكلة قد تكون متعلقة بأذونات الدلو (لكن هذا لا يبدو منطقيًا حقًا لأن نفس الإعدادات كانت تعمل قبل بضعة أسابيع)، ولكن بعد إعادة قراءة الرسالة، يبدو أن Discourse يحاول القيام بشيء ما، أوه، غير مُنفّذ. (وهو أمر يبدو أيضًا بعيدًا عن الاحتمال).
الرفع إلى S3 في دلو Google (وإن كان دلوًا مختلفًا) يعمل بشكل ممتاز. يوجد موقع إنتاجي يعمل بالإصدار 2.4.0.beta9، وموقع اختباري يعمل بالإصدار 2.4.0.beta10 (وقد قمت مؤخرًا بترقية أخرى على موقع الاختبار).
التثبيت هو الإصدار القياسي المكون من حاويتين، مع وجود الإضافات القياسية فقط، وتمت تهيئة إعدادات S3 باستخدام env: في ملف .yml. تعديل: حذفت إعدادات ENV تلك من ملف yml وأعدت بناء النظام (لم يُقم أمر destroy, start بإزالتها)، ولا تزال المشكلة قائمة.
لا أرى أي التزامات واضحة (في رأيي) قد تكون ذات صلة.
تعديل: هناك حالة تثبيت قياسية أخرى تعمل بالإصدار 2.4.0.beta8 بنفس الإعدادات وهي تعمل بشكل صحيح، مما يشير إلى أن شيئًا ما حدث بين الإصدارين beta8 و beta9. يبدو هذا وكأنه . @gerhard هل يمكن أن يكون هذا مرتبطًا بتغييرات النسخ الاحتياطي التي قمت بها؟
ملاحظة: تحققت من موقع يستخدم DigitalOcean Spaces وهو يعمل بشكل جيد للنسخ الاحتياطي.
هل تحصل على الخطأ بمجرد زيارة /admin/backups؟ لم أقم بتغيير أي شيء في هذا المجال مؤخرًا، لكننا حدّثنا مكتبة aws-s3 بين الإصدارين beta8 و beta10 من النسخة 1.36.1 إلى 1.60.1. من الممكن أن هذا لا يعمل مع دلاء Google بعد الآن. ربما تجد السبب في سجل التغييرات. يمكنك اختبار إصدارات مختلفة من المكتبة لتضييق نطاق المشكلة.
إذن، عن طريق الدخول إلى الحاوية وتعديل ملف Gemfile وتغيير
gem 'aws-sdk-s3', require: false
إلى الإصدار
gem 'aws-sdk-s3', '1.51.0', require: false
ثم تنفيذ الأمر
bundle install --no-deployment
sv restart unicorn
للتحقق مما إذا نجح الأمر أم لا، أظهرت عملية البحث الثنائي عبر الإصدارات أن 1.51.0 هو آخر إصدار يعمل، مما يعني أن المشكلة بدأت في الإصدار 1.52.0 في الميزة «إضافة دعم في SelectObjectContent لمسح جزء من كائن محدد بنطاق مسح».
لا أعرف ما يجب فعله بعد ذلك. أعتقد أنني سأفتح قضية على https://github.com/aws/aws-sdk-ruby، لكنني لست متأكدًا من اهتمامهم، أليس كذلك؟ لذا ربما يكون من الأفضل فتح تذكرة مع جوجل؟
وما زال Discourse يعمل لرفع الملفات على سلال Google، لكنه لا يعمل للنسخ الاحتياطية.