I am using Backblaze as S3 storage and have the clean up orphan uploads setting turned on. The problem is, instead of deleting the orphan upload, there created a duplicated file with 0 byte.
see below for example. the (2) indicates the number of files with the same name. if expanded, you will see the original file still exists, also with an 0 bytes file. Has anyone had the similar issue? is it the problem of Backblaze or the setting? Thanks.
Discourse uses the S3 API, and since it works fine with AWS S3 it leaves this to being a Backblaze problem. Maybe contact their support? I will add a note about this in Using Object Storage for Uploads (S3 & Clones)
There’s an ellipsis which suggests the name of the 0-byte file is being truncated. What is the full name there? I’d wager the bucket has a file lifecycle configured and that file is a “hide marker”, as they call it.
When the lifecycle expires both versions should disappear.
The truncated part is “hidden”. I think you are right. It looks like the duplicated files are all recently uploaded ones. I will wait some time and see if they are gone. Thank you.
لم يتم حل المشكلة بعد. لقد قمت للتو بحذف جميع الملفات اليتيمة يدويًا من 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 ساعة بمجرد إخفائها.