Problema de Backblaze S3: cargas duplicadas después de eliminar

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.

Screen Shot 2021-03-15 at 8.00.38 AM

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)

3 Me gusta

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.

3 Me gusta

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.

1 me gusta

Hi,
Can you please update us if the issue has been resolved?
More than a year passed since your last post, so hoping this is OK now… :slight_smile:

1 me gusta

El problema aún no está resuelto. Acabo de eliminar manualmente todos los archivos huérfanos de BackBlaze. Creo que me pasaré a S3 en este punto porque la limpieza regular del almacenamiento es una tarea en sí misma.

3 Me gusta

Solo una actualización sobre mi experiencia…
Tengo una cuenta B2 gratuita (es decir, los primeros 10 GB) y no tengo ningún método de pago agregado.

Los archivos de copia de seguridad se rotan y los archivos ‘ocultos’ se eliminan permanentemente después de unos días. Nunca tengo más de 7 archivos a la vez (Discourse tiene un máximo de 5 rotaciones de copias de seguridad diarias activadas). Dado que mis copias de seguridad nunca superan los ~500 MB cada una, nunca he tenido que pagar nada ni eliminar manualmente ningún archivo ‘huérfano’.

2 Me gusta

¿Ha habido algún cambio en este problema? ¿Alguien ha intentado ponerse en contacto con el soporte de Backblaze al respecto?

1 me gusta

Pero el problema parece estar con las ‘Cargas’!!
Ya que las ‘Copias de seguridad’ no son tantos/demasiados archivos para gestionar. Son manejables, incluso manualmente.

Parece que este problema continúa.

@Falco ¿podrías explicar qué operaciones de S3 realiza Discourse para limpiar los huérfanos?

Gracias. Veo que copy_to_tombstone está involucrado aquí. No pude encontrar ninguna documentación sobre tombstone y archivos huérfanos, así que solo puedo suponer cómo funciona basándome en lo que leí en el foro. Por favor, corríjame si me equivoco:

  1. Cuando se identifica un archivo huérfano (después del período de gracia de las cargas huérfanas), se copia a la carpeta tombstone (copy_object).
  2. Luego se elimina (o se supone que se elimina) con delete_object.
  3. Cuando llega el momento (después del período de gracia de purga de cargas eliminadas), se elimina de la carpeta tombstone.

¿Es esto correcto?

Según lo que veo en Backblaze, parece que se copia a la carpeta tombstone. Simplemente no se elimina, sino que se crea una versión oculta y vacía.

1 me gusta

Así que me puse en contacto con el soporte y parece que hay una solución para el problema de los archivos huérfanos. Esto es lo que dijo el soporte de Backblaze:

Aquí están sucediendo un par de cosas. Al mirar tu cuenta, veo que tienes las reglas de ciclo de vida de tu bucket configuradas en Mantener todos los archivos. Si cambiaras tus reglas de ciclo de vida a Mantener solo la última versión del archivo, el archivo oculto se eliminará 24 horas después de estar oculto, liberando espacio de almacenamiento.

Ahora, otra capa a añadir aquí es que al usar un servicio compatible con S3, cada vez que se llama a una eliminación de objeto, este se oculta. Y a partir de aquí, dependiendo de las reglas de ciclo de vida del bucket, se eliminará o permanecerá oculto. En tu caso, los archivos permanecen ocultos y no se eliminan debido a Mantener TODOS los archivos.

Para que un objeto se elimine cuando se llama a una eliminación de objeto, se necesita el ID de versión del archivo con la llamada de eliminación correspondiente, lo cual no creo que la integración esté haciendo si los archivos simplemente se están ocultando.

Para que estos archivos se eliminen del bucket, deberás iniciar sesión en tu cuenta de Backblaze, ir a tu bucket y actualizar su configuración de ciclo de vida a Mantener solo la última versión del archivo. Esto eliminará el archivo oculto del bucket después de 24 horas.

Por defecto, Backblaze establece la regla de ciclo de vida “Mantener todos los archivos” para los buckets recién creados. Probablemente por eso todo el mundo tiene problemas con los archivos huérfanos. Cambiar la regla de ciclo de vida a “Mantener solo la última versión del archivo” elimina los archivos huérfanos después de 24 horas una vez que se ocultan.

Esto podría valer la pena mencionarlo en este hilo:

2 Me gusta

¡Buen hallazgo! ¿Puedes editarlo en la wiki?

No me di cuenta de que era una wiki. Actualizado.

1 me gusta