التحميلات في Cloudflare R2 لم تُضاف إلى النسخ الاحتياطي: فشل في تنزيل ******* بسبب Aws::S3::Errors::Http501Error

أنا أجرب بعض الأشياء على Cloudflare وكنت أفكر في ترك R2 في المستقبل. لهذا السبب، عندما كنت أفحص النسخ الاحتياطية، رأيت أن التثبيتات لم يتم تضمينها وظهر خطأ. عند إجراء نسخة احتياطية يدويًا، يظهر نفس الخطأ في سجلات المعاملات. يتم نسخ الصور والملفات الموجودة محليًا احتياطيًا، ولكن الصور الموجودة في Cloudflare R2 لا يتم نسخها احتياطيًا.

مثال لرمز خطأ:

فشل تنزيل original/1X/4b8754c367e54bc5271454a09b8bd4c1a8b882d5.png بسبب خطأ Aws::S3::Errors::Http501Error
/var/www/discourse/lib/s3_helper.rb:280:in `rescue in download_file'
/var/www/discourse/lib/s3_helper.rb:277:in `download_file'
/var/www/discourse/lib/file_store/s3_store.rb:338:in `download_file'
/var/www/discourse/lib/backup_restore/backuper.rb:321:in `block in add_remote_uploads_to_archive'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:71:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:71:in `block in find_each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:138:in `block in find_in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:245:in `block in in_batches'
/internal:kernel:187:in `loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:229:in `in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:137:in `find_in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:70:in `find_each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/querying.rb:22:in `find_each'
/var/www/discourse/lib/backup_restore/backuper.rb:315:in `add_remote_uploads_to_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:248:in `create_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:40:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:31:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'

تكويني كالتالي:

شكرا.

هذا متوقع، والنقطة الأساسية في S3/R2 هي أنك لا تحتاج إلى عمل نسخة احتياطية من الأشياء. ولكن هناك إعداد مخفي سيقوم بتنزيل جميع الصور من S3 ووضعها في النسخة الاحتياطية.

أوه، ولكن لديك DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true.

لذا ربما لا يعمل R2 كما اقترح في الأصل. اعتقدت أنني اختبرته ونجح، لكنني لم أحاول تنزيل الصور إلى النسخة الاحتياطية ومن المحتمل أنني لم أحاول إجراء استعادة أو تنزيل ملف نسخة احتياطية.

ربما ينتمي هذا إلى الموضوع الآخر لأنه يبدو أنه يتعارض مع فرضية “ربما يعمل” المقدمة هناك.

هذا الإعداد نشط، ولكنه للأسف لا يستورد الصور من R2 عند إجراء النسخ الاحتياطي. يمكنك رؤية ذلك في السجل عند إجراء نسخة احتياطية يدوية.

أنا متردد وأفكر في ترك شبكة توصيل المحتوى (CDN) واستخدام التخزين المحلي. في الواقع، من المتوقع أن يحدث هذا، في حال تغيرت الآراء.

شكراً لك على الوقت الذي خصصته للرد.

سأثير المشكلة مرة أخرى ولكنها تملأ برموز الخطأ مع كل نسخة احتياطية تلقائية. إذا لم يتم إجراء النسخ الاحتياطي، أعتقد أنه سيكون من الأفضل عدم طلب الملفات على S3 لتجنب إضاعة الوقت. بهذه الطريقة لا نملأ الملف برموز خطأ غير ضرورية.

تخميني هو أنه لن يسمح لك بتنزيلها لأنها تحاول حمايتك من شخص يسرق كل صورك. يبدو أنها طريقة أخرى لعدم توافق R2 مع discourse.

إعجاب واحد (1)

لقد كنت على R2 لفترة طويلة. كل شيء يبدو جيدًا، هناك فقط بعض المشكلات (كما هو موضح أعلاه) ولكن يمكن إصلاحها. بمرور الوقت، ستعمل المجتمعات على حل هذه المشكلة، وحتى ذلك الحين، حظًا موفقًا لك :slight_smile:

هذا مثير للاهتمام! لم أرَك سوى تتذمر من الأشياء التي لم تكن تعمل. بدت اختباراتي السريعة وكأنها نجحت، لكنني لم أختبر بشكل شامل.

نوع من تحديد المعدل هو أفضل تخمين لدي للتنزيلات للنسخ الاحتياطي، على الرغم من أنني أعتقد أنه ستكون هناك أخطاء؟

إعجاب واحد (1)

بعد اختباراتك، قمنا بتشغيل R2 والمشاكل التي واجهتها مع R2 كانت كالتالي:
عندما قمت بإيقاف تشغيل S3، تحولت الاتصالات إلى اتصالات R2 غريبة (ما رأيته عندما نظرت في Docker). وعندما حاولت إصلاحها وإعادة الخبز، كانت الصور على الموقع تطير ومشوهة. بعد تصحيحها بعد عدة محاولات، قمت بتعيين R2 للتحميل والاستخدام فقط. لذلك لم أجد طريقة للتخلص منها بعد (أو لم أتمكن من ذلك).
كان هناك خطأ آخر عند إجراء النسخ الاحتياطي. بالنظر إلى وجود 10 آلاف صورة، فإنها تملأ سجلات الأخطاء بلا فائدة. هذا يمكن أن يتسبب أحيانًا في تفويت المشاكل المهمة. (قد يكون من الأفضل إذا لم يعط رسالة خطأ، ولكن يجب ملاحظة أن البيانات الموجودة على S3 لن تتم إضافتها إلى النسخ الاحتياطي).

لا أتذكر أنني واجهت مشاكل أخرى غير هذه. إذا أردت نسخ الملفات الموجودة على R2 احتياطيًا، يمكنني الاتصال عبر winscp وتنزيلها إلى جهازي. إذا اتصل أي شخص، فلنترك ملاحظة هنا :slight_smile:

خطر ببالي للتو أن أولئك الذين يستخدمون S3 يمكنهم إيقاف تشغيل هذا الإعداد “النسخ الاحتياطي مع التحميلات”. حتى نتمكن من التخلص من رسالة الخطأ. لماذا لم أفكر في هذا من قبل… :rofl::rofl:

إعجاب واحد (1)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.