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.
Le problème n’est toujours pas résolu. Je viens de supprimer manuellement tous les fichiers orphelins de BackBlaze. Je pense que je vais passer à S3 à ce stade, car le nettoyage régulier du stockage est une tâche en soi.
Juste une mise à jour sur mon expérience…
J’ai un compte B2 gratuit (c’est-à-dire les 10 premiers Go) et je n’ai pas de méthode de paiement ajoutée.
Les fichiers de sauvegarde sont mis en rotation et les fichiers « cachés » sont supprimés définitivement après quelques jours. Je n’ai jamais plus de 7 fichiers à la fois (Discourse a un maximum de 5 rotations de sauvegardes quotidiennes activées). Comme mes sauvegardes ne dépassent jamais ~500 Mo chacune, je n’ai jamais eu à payer quoi que ce soit ni à supprimer manuellement des fichiers « orphelins ».
Mais le problème semble être avec les « Téléversements » !!
Comme les « Sauvegardes » ne sont pas si nombreuses/trop nombreuses à gérer. Elles sont gérables, même manuellement.
Merci. Je vois que copy_to_tombstone est impliqué ici. Je n’ai trouvé aucune documentation sur les tombes et les fichiers orphelins, je ne peux donc qu’émettre des hypothèses sur son fonctionnement d’après ce que j’ai lu sur le forum. Veuillez me corriger si je me trompe :
Lorsqu’un fichier orphelin est identifié (après la période de grâce pour les téléchargements orphelins), il est copié dans le dossier de la tombe (copy_object).
Il est ensuite supprimé (ou censé être supprimé) avec delete_object.
Lorsque le moment est venu (après la période de grâce pour la purge des téléchargements supprimés), il est supprimé du dossier de la tombe.
Est-ce correct ?
D’après ce que je vois dans Backblaze, il semble bien qu’il soit copié dans le dossier de la tombe. Il n’est simplement pas supprimé, mais une version vide et cachée est créée à la place.
J’ai donc contacté le support et il semble qu’il existe une solution au problème des fichiers orphelins. Voici ce que le support Backblaze a dit :
Plusieurs choses se passent ici. En regardant votre compte, vous avez configuré les règles de cycle de vie de votre bucket sur Conserver tous les fichiers. Si vous changiez vos règles de cycle de vie pour Conserver uniquement la dernière version du fichier, le fichier caché serait supprimé 24 heures après avoir été caché, libérant ainsi de l’espace de stockage.
Une autre chose à ajouter ici est que lors de l’utilisation d’un service compatible S3, chaque fois qu’une suppression d’objet est appelée, celui-ci est caché. Et à partir de là, en fonction des règles de cycle de vie du bucket, il sera supprimé ou restera caché. Dans votre cas, les fichiers restent cachés et ne sont pas supprimés en raison de la règle “Conserver tous les fichiers”.
Pour qu’un objet soit supprimé lorsqu’une suppression d’objet est appelée, il faut avoir l’ID de version du fichier avec l’appel de suppression correspondant, ce que je ne pense pas que l’intégration fasse si les fichiers sont simplement cachés.
Pour que ces fichiers soient supprimés du bucket, vous devrez vous connecter à votre compte Backblaze, aller dans votre bucket et mettre à jour son paramètre de cycle de vie sur Conserver uniquement la dernière version du fichier. Cela supprimera le fichier caché du bucket après 24 heures.
Par défaut, Backblaze définit la règle de cycle de vie “Conserver tous les fichiers” pour les buckets nouvellement créés. C’est probablement pourquoi tout le monde a des problèmes avec les fichiers orphelins. Changer la règle de cycle de vie en “Conserver uniquement la dernière version du fichier” supprime les fichiers orphelins après 24 heures une fois qu’ils sont cachés.
Cela pourrait valoir la peine d’être mentionné dans ce fil de discussion :