- Navios
- 6 de agosto de 2026 às 20:45 UTC
- Autor
- Kamo
- Enviar
- 0eda67f
Os anexos escreveram seu próprio objeto "<imgId>/<fileName>" em cada upload, ignorando o loja inteiramente endereçada ao conteúdo — o mesmo logo-draft.png anexado três vezes numa só a conversação ocupou três objetos. Envia agora hash para um ImgDat compartilhado, tão idêntico o conteúdo é armazenado uma vez, não importa quantas vezes esteja anexado, e um anexo que corresponda um documento já existente no sistema não custa nenhum armazenamento. A linha Img permanece por-attachment: carrega a conversa, uploader e revogação Estado, e ainda é contra o que o acesso é verificado. Apenas os bytes são compartilhados. As leituras resolvem a chave endereçada ao conteúdo quando a linha tem um dat e volta para o legacy per-upload object quando não o faz, por isso os anexos que predam isto continuam a funcionar — incluindo qualquer escrito por uma instância que ainda não tenha rolado. ChatAttachmentDedupBackfill dobra os anexos legados na inicialização: ele seleciona apenas linhas com um dat nulo e conjuntos que dat último, por isso é idempotent, auto-cura através do rollout, e uma falha em uma linha deixa-o no caminho legado ainda trabalhando em vez de falha na inicialização. Os objetos legados são deixados no lugar; nada apaga do MinIO.