أنا أستخدم Backblaze كخادم تخزين S3 وقد قمت بتفعيل إعداد تنظيف الملفات المفقودة. المشكلة هي أنه بدلاً من حذف الملف المفقود، تم إنشاء ملف مكرر بحجم 0 بايت.
انظر إلى المثال أدناه. يشير الرقم (2) إلى عدد الملفات التي تحمل نفس الاسم. عند التوسيع، ستجد أن الملف الأصلي لا يزال موجودًا، بالإضافة إلى ملف بحجم 0 بايت. هل واجه أي شخص مشكلة مماثلة؟ هل المشكلة في Backblaze أم في الإعداد؟ شكرًا.
يستخدم Discourse واجهة برمجة تطبيقات S3، وبما أنها تعمل بشكل جيد مع AWS S3، فإن هذا يترك المشكلة لـ Backblaze. ربما يمكنك التواصل مع دعمهم؟ سأضيف ملاحظة حول هذا في استخدام التخزين الكائني للرفع (S3 وما شابه)
يوجد ثلاث نقاط تشير إلى أن اسم الملف الذي يبلغ حجمه 0 بايت قد تم قصّه. ما هو الاسم الكامل هناك؟ أرجح أن الدلو يحتوي على دورة حياة مُهيّأة، وأن هذا الملف هو “علامة إخفاء”، كما يسمونها.
عند انتهاء صلاحية دورة الحياة، يجب أن يختفي كلا الإصدارين.
الجزء المختصر «مخفي». أعتقد أنك محق. يبدو أن الملفات المكررة هي جميع الملفات التي تم تحميلها مؤخرًا. سأنتظر بعض الوقت لأرى ما إذا كانت ستختفي. شكرًا لك.
لم يتم حل المشكلة بعد. لقد قمت للتو بحذف جميع الملفات اليتيمة يدويًا من BackBlaze. أعتقد أنني سأنتقل إلى S3 في هذه المرحلة لأن التنظيف المنتظم للتخزين يمثل مهمة بحد ذاتها.
تحديث لتجربتي…
لدي حساب B2 مجاني (أي أول 10 جيجابايت) ولا يوجد لدي طريقة دفع مضافة.
يتم تدوير ملفات النسخ الاحتياطي ويتم حذف الملفات “المخفية” بشكل دائم بعد بضعة أيام. لا يتجاوز عدد الملفات لدي 7 ملفات في المرة الواحدة (يحتوي Discourse على 5 نسخ احتياطية يومية كحد أقصى). نظرًا لأن النسخ الاحتياطية الخاصة بي لا تتجاوز 500 ميجابايت لكل منها، لم أضطر أبدًا إلى الدفع مقابل أي شيء أو حذف أي ملفات “يتيمة” يدويًا.
شكرًا لك. أرى أن copy_to_tombstone متورط هنا. لم أتمكن من العثور على أي وثائق حول tombstone والملفات اليتيمة، لذلك لا يمكنني إلا أن أفترض كيف تعمل بناءً على ما قرأته في المنتدى. يرجى تصحيحي إذا كنت مخطئًا:
عند تحديد ملف يتيم (فترة سماح ساعات للملفات اليتيمة النظيفة)، يتم نسخه إلى مجلد tombstone (copy_object).
ثم يتم حذفه (أو من المفترض أن يتم حذفه) باستخدام delete_object.
عندما يحين الوقت (أيام فترة سماح لحذف الملفات المحذوفة)، يتم حذفه من مجلد tombstone.
هل هذا صحيح؟
بناءً على ما أراه في Backblaze، يبدو أنه يتم نسخه إلى مجلد tombstone. إنه ببساطة لا يتم حذفه، وبدلاً من ذلك يتم إنشاء إصدار مخفي فارغ.
لذلك، لقد اتصلت بالدعم، ويبدو أن هناك حلاً لمشكلة الملفات اليتيمة. إليك ما قاله دعم Backblaze:
هناك عدة أمور تحدث هنا. بالنظر إلى حسابك هنا، لديك قواعد دورة حياة الدلو الخاصة بك مضبوطة على الاحتفاظ بجميع الملفات. إذا قمت بتغيير قواعد دورة حياتك إلى الاحتفاظ بالإصدار الأخير للملف فقط، فسيتم حذف الملف المخفي بعد 24 ساعة من إخفائه، وتنظيف مساحة التخزين.
الآن، هناك طبقة أخرى لإضافتها هنا وهي أنه عند استخدام خدمة متوافقة مع S3، في كل مرة يتم فيها استدعاء حذف كائن، سيتم إخفاؤه. ومن هنا، اعتمادًا على قواعد دورة حياة الدلو، سيتم حذفه أو سيظل مخفيًا. في حالتك، تظل الملفات مخفية ولا يتم حذفها بسبب الاحتفاظ بجميع الملفات.
لكي يتم حذف كائن عند استدعاء حذف كائن، يجب أن يكون لديك معرف إصدار الملف مع استدعاء الحذف المصاحب له، وهو ما لا أعتقد أن التكامل يقوم به إذا تم إخفاء الملفات فقط.
لكي يتم حذف هذه الملفات من الدلو، ستحتاج إلى تسجيل الدخول إلى حساب Backblaze الخاص بك، والانتقال إلى الدلو الخاص بك، وتحديث إعداد دورة حياته إلى الاحتفاظ بالإصدار الأخير للملف فقط. سيؤدي هذا إلى حذف الملف المخفي من الدلو بعد 24 ساعة.
بشكل افتراضي، يقوم Backblaze بتعيين قاعدة دورة حياة “الاحتفاظ بجميع الملفات” للدلاء التي تم إنشاؤها حديثًا. هذا هو السبب على الأرجح في أن الجميع لديهم مشاكل مع الملفات اليتيمة. تغيير قاعدة دورة الحياة إلى “الاحتفاظ بالإصدار الأخير للملف فقط” يحذف الملفات اليتيمة بعد 24 ساعة بمجرد إخفائها.