ولكن لم يتم حذف الملفات المحلية القديمة. بناءً على ما قرأته، يجب أن يتم ذلك تلقائيًا (لقد قمت بتعيين “تنظيف التحميلات اليتيمة” إلى ساعة واحدة و “فترة السماح بحذف التحميلات المحذوفة” إلى يوم واحد) ولكنه لا يحدث. هناك أيضًا هذه المهمة “Jobs::CleanUpUploads” في sidekiq تم تمييزها على أنها فشلت.
هل هناك طريقة لحذف الملفات بأمان أو تشغيل المهمة من سطر الأوامر؟
أتذكر أنه كان هناك خطأ في نهاية عملية الترحيل، وأن بعض الملفات لم يتم نقلها. لم أهتم إذا كانت بعض الصور القليلة من أصل 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