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.
O problema ainda não foi resolvido. Acabei de excluir manualmente todos os arquivos órfãos do BackBlaze. Acho que vou migrar para o S3 neste momento, porque a limpeza regular do armazenamento é uma tarefa em si.
Apenas uma atualização sobre minha experiência…
Tenho uma conta B2 gratuita (ou seja, os primeiros 10 GB) e não tenho um método de pagamento adicionado.
Os arquivos de backup são rotacionados e os arquivos ‘ocultos’ são removidos permanentemente após alguns dias. Nunca tenho mais do que 7 arquivos ao mesmo tempo (o Discourse tem no máximo 5 rotações de backup diárias). Como meus backups nunca ultrapassam ~500 MB cada, nunca precisei pagar por nada ou excluir manualmente quaisquer arquivos ‘órfãos’.
Mas o problema parece ser com os ‘Uploads’!!
Como os ‘Backups’ não são tantos/têm tantos arquivos para gerenciar. Eles são gerenciáveis, mesmo manualmente.
Obrigado. Vejo que copy_to_tombstone está envolvido aqui. Não consegui encontrar nenhuma documentação sobre tombstone e arquivos órfãos, então só posso presumir como funciona com base no que li no fórum. Por favor, corrija-me se eu estiver errado:
Quando um arquivo órfão é identificado (após o período de carência de uploads órfãos), ele é copiado para a pasta tombstone (copy_object).
Em seguida, ele é excluído (ou deveria ser excluído) com delete_object.
Quando chega a hora (dias de carência para purgar uploads excluídos), ele é excluído da pasta tombstone.
Isso está correto?
Com base no que vejo no Backblaze, parece que ele é copiado para a pasta tombstone. Ele simplesmente não é excluído, mas em vez disso, uma versão oculta e vazia é criada.
Então eu entrei em contato com o suporte e parece que há uma solução para o problema de arquivos órfãos. Eis o que o suporte da Backblaze disse:
Há algumas coisas acontecendo aqui. Olhando para sua conta, você tem suas regras de ciclo de vida do bucket definidas como Manter todos os arquivos. Se você alterasse suas regras de ciclo de vida para Manter apenas a última versão do arquivo, o arquivo oculto seria excluído após 24 horas de ocultação, liberando espaço de armazenamento.
Agora, outra camada a ser adicionada aqui é que, ao usar um serviço compatível com S3, sempre que uma exclusão de objeto é chamada, ele será ocultado. E a partir daqui, dependendo das regras de ciclo de vida do bucket, ele será excluído ou permanecerá oculto. No seu caso, os arquivos permanecem ocultos e não estão sendo excluídos devido a Manter TODOS os arquivos.
Para que um objeto seja excluído quando uma exclusão de objeto é chamada, é necessário ter o ID da versão do arquivo com a chamada de exclusão associada, o que acho que a integração não está fazendo se os arquivos estão apenas sendo ocultados.
Para que esses arquivos sejam excluídos do bucket, você precisará fazer login em sua conta Backblaze, ir ao seu bucket e atualizar sua configuração de ciclo de vida para Manter apenas a última versão do arquivo. Isso excluirá o arquivo oculto do bucket após 24 horas.
Por padrão, o Backblaze define a regra de ciclo de vida “Manter todos os arquivos” para buckets recém-criados. É provavelmente por isso que todos têm problemas com arquivos órfãos. Alterar a regra de ciclo de vida para “Manter apenas a última versão do arquivo” exclui arquivos órfãos após 24 horas, uma vez que ele é ocultado.