إذًا، تم التأكيد على أن المشكلة كانت أنه قبل بضع سنوات عندما حاولت لأول مرة إعداد S3، قمت بتعيين enable_s3_uploads في قاعدة البيانات، مما تسبب في فشل الاستعادة لأنها تحاول التحميل إلى S3 ولكنها لا تملك معلومات كافية. (تنهد. لكنها تفشل في استعادة المثيل متعدد المواقع/S3 لأن بعض الملفات “لم يتم ترحيلها إلى S3”.)
أتساءل عما إذا كان من المنطقي إخفاء جميع إعدادات تحميلات S3. أنا متأكد من أنه لا يمكن أن يأتي أي خير من تعيينها في تجربة المستخدم. ولكن يمكن أن يكون من المفيد تعيين تحميلات S3 في قاعدة البيانات. . . . ربما.
الذي تم استعادته إلى التثبيت القياسي يفشل في إظهار التحميلات لأنه يقوم بما يلي:
بدأ GET "/uploads/short-url/puhaSNHeEy1S2knGFQIAZ8lprRy.pdf" لـ 68.11.35.109 في 2022-01-25 19:48:06 +0000
معالجة بواسطة UploadsController#show_short كـ PDF
المعلمات: {"base62"=>"puhaSNHeEy1S2knGFQIAZ8lprRy", "extension"=>"pdf"}
تم إرسال الملف /var/www/discourse/public/default/original/1X/b2a283b9381b837234e7d4830b.pdf (4.4ms)
اكتمل خطأ 500 داخلي في 130ms (ActiveRecord: 0.0ms | التخصيصات: 10019)
ActionController::MissingFile (لا يمكن قراءة الملف /var/www/discourse/public/default/original/1X/b2a283b9381b837234e7d4830.pdf)
المسار الذي يبحث عنه هو /var/www/discourse/public/default/original/1X/ بدلاً من /var/www/discourse/public/uploads/default/original/1X/
… . .
وهذا لأنني قمت بإعادة تعيين لمحاولة إصلاح مراجع S3 bucket وهذا كسر المسارات في عناوين URL المحلية.
أعتقد ربما يكون هذا أكثر من اللازم ليكون مفيدًا لأي شخص. على الرغم من أنني ما زلت أعتقد أن إخفاء متغيرات تحميل S3 من تجربة المستخدم فكرة جيدة.