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.
Das Problem ist noch nicht behoben. Ich habe gerade alle verwaisten Dateien manuell von BackBlaze gelöscht. Ich denke, ich werde zu diesem Zeitpunkt zu S3 wechseln, da die regelmäßige Bereinigung des Speichers eine eigene Aufgabe darstellt.
Nur ein Update zu meiner Erfahrung…
Ich habe ein kostenloses B2-Konto (d.h. die ersten 10 GB) und keine Zahlungsmethode hinterlegt.
Die Backup-Dateien werden rotiert und die ‘versteckten’ Dateien werden nach einigen Tagen permanent gelöscht. Ich habe nie mehr als 7 Dateien gleichzeitig (Discourse hat maximal 5 tägliche Backup-Rotationen). Da meine Backups nie mehr als ca. 500 MB pro Stück sind, musste ich nie für etwas bezahlen oder ‘verwaiste’ Dateien manuell löschen.
Aber das Problem scheint bei ‘Uploads’ zu liegen!!
Da die ‘Backups’ nicht so viele/zu viele Dateien zum Verwalten sind. Sie sind überschaubar, sogar manuell.
Danke. Ich sehe, dass copy_to_tombstone hier involviert ist. Ich konnte keine Dokumentation über Tombstones und verwaiste Dateien finden, daher kann ich nur vermuten, wie es funktioniert, basierend auf dem, was ich im Forum gelesen habe. Bitte korrigieren Sie mich, wenn ich falsch liege:
Wenn eine verwaiste Datei identifiziert wird (nach Ablauf der Frist für verwaiste Uploads), wird sie in den Tombstone-Ordner kopiert (copy_object).
Sie wird dann gelöscht (oder soll gelöscht werden) mit delete_object.
Wenn die Zeit kommt (nach Ablauf der Frist für die Bereinigung gelöschter Uploads), wird sie aus dem Tombstone-Ordner gelöscht.
Ist das richtig?
Basierend auf dem, was ich in Backblaze sehe, scheint sie tatsächlich in den Tombstone-Ordner kopiert zu werden. Sie wird nur nicht gelöscht, sondern stattdessen wird eine leere, versteckte Version erstellt.
Ich habe also den Support kontaktiert, und es scheint eine Lösung für das Problem mit den verwaisten Dateien zu geben. Hier ist, was der Backblaze-Support sagte:
Hier passieren ein paar Dinge. Wenn ich mir Ihr Konto ansehe, haben Sie Ihre Bucket-Lifecycle-Regeln auf Alle Dateien behalten gesetzt. Wenn Sie Ihre Lifecycle-Regeln auf Nur die letzte Version der Datei behalten ändern würden, wird die versteckte Datei 24 Stunden nach dem Verstecken gelöscht und der Speicherplatz freigegeben.
Eine weitere Ebene, die hier hinzugefügt werden muss, ist, dass bei Verwendung eines S3-kompatiblen Dienstes jedes Mal, wenn ein Objekt gelöscht wird, dieses versteckt wird. Und von hier aus wird es je nach den Lifecycle-Regeln des Buckets gelöscht oder versteckt bleiben. In Ihrem Fall bleiben die Dateien versteckt und werden nicht gelöscht, da Sie ALLE Dateien behalten.
Damit ein Objekt gelöscht wird, wenn ein Objekt-Löschvorgang aufgerufen wird, muss die Datei-Versions-ID mit dem entsprechenden Löschaufruf übergeben werden, was die Integration meiner Meinung nach nicht tut, wenn Dateien nur versteckt werden.
Damit diese Dateien aus dem Bucket gelöscht werden, müssen Sie sich in Ihr Backblaze-Konto einloggen, zu Ihrem Bucket gehen und dessen Lifecycle-Einstellung auf Nur die letzte Version der Datei behalten. ändern. Dies löscht die versteckte Datei nach 24 Stunden aus dem Bucket.
Standardmäßig legt Backblaze die Lifecycle-Regel “Alle Dateien behalten” für neu erstellte Buckets fest. Das ist wahrscheinlich der Grund, warum alle Probleme mit verwaisten Dateien haben. Das Ändern der Lifecycle-Regel auf “Nur die letzte Version der Datei behalten” löscht verwaiste Dateien nach 24 Stunden, sobald sie versteckt sind.