بعد حذف عدة آلاف من المشاركات مع الصور، تظل التحميلات في قسم المسؤول كما هي. تم ضبط هذا الإعداد على 1. هل هناك طريقة لمسح جميع التحميلات المرتبطة بالمشاركات المحذوفة بشكل أسرع؟
فترة السماح بأيام لمسح التحميلات المحذوفة
فترة السماح (بالأيام) قبل مسح التحميل المحذوف.
لقد فعلت هذا ما رأيته في مشاركة أخرى ولكن بعد إعادة البناء لم يختف شيء
لست متأكدًا من أنني أفهم هذا. لم أقم بتحميل أي شيء سوى حذف المشاركات والفئات على موقع اختبار. لا يوجد مستخدمون الآن وقد مرت حوالي 3 ساعات. من 13.7 إلى الآن يظهر هذا. تم تعيين تحميلات الأيتام للحذف في غضون ساعة ولم يحدث ذلك.
أرى هذا الموضوع الذي يناقش الكثير ولكن لم يحدث شيء؟
ثم هذا هنا.
وقد جربت كل شيء في rails المذكور، و sidekiq، والأوامر في هذا الموضوع ولا يزال لا شيء يحذف. يجب أن تكون هناك مئات إن لم يكن الآلاف من الصور المحذوفة حيث أزال المستخدمون المنشورات التي نشرت صورًا مع كل موضوع.
أعتقد أن جدول post_uploads لم يعد موجودًا. إنه الآن uploads و upload_references. قد تحتاج إلى تحديث هذا المقتطف القديم ليأخذ ذلك في الاعتبار إذا كنت تحاول هذه الطريقة.
كيف قمت بحذف هذه المشاركات؟ هل قمت بحذفها بشكل ناعم فقط في واجهة المستخدم؟ أعتقد أن الإعداد الذي ينظف الصور اليتيمة (clean orphan uploads grace period hours) لا يأخذ في الاعتبار ما إذا كانت قد تم حذفها بشكل ناعم، ويهتم فقط بما إذا كانت الصورة لا تزال موجودة في أحدث إصدار من المشاركة:
أعتقد أنه يمكنك تحديد جميع المشاركات في وحدة تحكم Rails واستخدام PostDestroyer عليها لحذفها بشكل دائم، وبعد ذلك سيتم تنظيف الملفات المرفقة في المرة التالية التي يتم فيها تشغيل Jobs::CleanUpUploads (أو يتم تشغيلها يدويًا).
إذا كانت فئة بأكملها، على سبيل المثال، أعتقد أنه يمكنك استخدام شيء مثل هذا:
category = Category.where(id: CATEGORY_ID).pluck(:id)
topic = Topic.where(category_id: category).pluck(:id)
topic.each do |t|
Post.where(topic_id: t).find_each do |p|
PostDestroyer.new(Discourse.system_user, p).destroy
p.destroy!
end
end