Estoy utilizando Backblaze como almacenamiento S3 y tengo activada la configuración limpiar cargas huérfanas. El problema es que, en lugar de eliminar la carga huérfana, se crea un archivo duplicado de 0 bytes.
Vea el ejemplo a continuación. El (2) indica la cantidad de archivos con el mismo nombre. Si se expande, verá que el archivo original aún existe, junto con un archivo de 0 bytes. ¿Alguien ha tenido un problema similar? ¿Es un problema de Backblaze o de la configuración? Gracias.
Discourse utiliza la API de S3 y, dado que funciona correctamente con AWS S3, deja esto como un problema de Backblaze. ¿Quizás contactes a su soporte? Añadiré una nota sobre esto en Uso de almacenamiento de objetos para cargas (S3 y clones)
Hay una elipsis que sugiere que el nombre del archivo de 0 bytes está siendo truncado. ¿Cuál es el nombre completo? Apostaría a que el bucket tiene configurado un ciclo de vida de archivos y que ese archivo es un “marcador de ocultación”, como lo llaman.
Cuando el ciclo de vida expire, ambas versiones deberían desaparecer.
La parte truncada está “oculta”. Creo que tienes razón. Parece que los archivos duplicados son todos los que se subieron recientemente. Esperaré un tiempo y veré si desaparecen. Gracias.
Hola, ¿podrías actualizarnos si el problema se ha resuelto? Ha pasado más de un año desde tu último mensaje, así que esperamos que ahora todo esté bien…
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.
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’.
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.
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:
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).
Luego se elimina (o se supone que se elimina) con delete_object.
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.
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: