إزالة التحميلات المحلية بعد ترحيل S3

لقد تمكنت مؤخرًا من نقل الملفات إلى S3 (تخزين الكائنات Contabo) Configure an S3 compatible object storage provider for uploads - #474 by tumbano

ولكن لم يتم حذف الملفات المحلية القديمة. بناءً على ما قرأته، يجب أن يتم ذلك تلقائيًا (لقد قمت بتعيين “تنظيف التحميلات اليتيمة” إلى ساعة واحدة و “فترة السماح بحذف التحميلات المحذوفة” إلى يوم واحد) ولكنه لا يحدث. هناك أيضًا هذه المهمة “Jobs::CleanUpUploads” في sidekiq تم تمييزها على أنها فشلت.

هل هناك طريقة لحذف الملفات بأمان أو تشغيل المهمة من سطر الأوامر؟

أواجه مشكلة مماثلة أيضًا. جميع ملفاتي التي تم تحميلها موجودة في الحاوية الخاصة بي، ولكنها موجودة أيضًا على الخادم الخاص بي في الدليل المشترك :thinking:

لقد أنشأت للتو نسخة احتياطية جديدة للموقع كاختبار، ووضعتها في كل من الدليل المشترك وحاوية S3.

حسنًا، لا يزال النسخ الاحتياطي يضع مجلد التحميلات المحلي في الأرشيف، حتى لو قال إنه لا يفعل ذلك.

أتذكر أنه كان هناك خطأ في نهاية عملية الترحيل، وأن بعض الملفات لم يتم نقلها. لم أهتم إذا كانت بعض الصور القليلة من أصل 80000+ مفقودة، ولكن من يدري، ربما كان ديسكورس يهتم، لذلك حاولت اليوم شيئًا وجدته في موضوع آخر و

cd /var/discourse
./launcher enter app
VERBOSE=1 rake posts:missing_uploads

كانت النتيجة أن هناك منشورين يحتوي كل منهما على صورة مفقودة وأعطاني الروابط الدقيقة، لذا ذهبت وقمت بتحرير المنشورات. بعد تشغيل الأمر مرة أخرى، لم تكن هناك ملفات مفقودة.
مع قليل من الأمل، حاولت بعد ذلك تشغيل rake uploads:migrate_to_s3 مرة أخرى، دون جدوى. هذه هي الطريقة التي تنتهي بها

Updating the URLs in the database...
Removing old optimized images...
Flagging all posts containing lightboxes for rebake...
16163 posts were flagged for a rebake
rake aborted!
FileStore::ToS3MigrationError: 4 posts are not remapped to new S3 upload URL. S3 migration failed for db 'default'. (FileStore::ToS3MigrationError)
/var/www/discourse/lib/file_store/to_s3_migration.rb:132:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:81:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:383:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:59:in `migrate'
/var/www/discourse/lib/tasks/uploads.rake:126:in `migrate_to_s3'
/var/www/discourse/lib/tasks/uploads.rake:106:in `block in migrate_to_s3_all_sites'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:36:in `each_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management.rb:21:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:104:in `migrate_to_s3_all_sites'
/var/www/discourse/lib/tasks/uploads.rake:100:in `block in <main>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => uploads:migrate_to_s3