Os servidores de aplicativos podem armazenar arquivos carregados no sistema de arquivos do servidor e persistir apenas os caminhos do arquivo em um banco de dados. Obter um backup consistente desse conjunto de dados pode ser difícil.
Este projeto de amostra usa Spring, JPA e Hibernate ORM para armazenar arquivos carregados como blobs em um banco de dados. O MySQL suporta blobs de 4 GB, Blobs H2 de pelo menos 16 GB e Blobs PostgreSQL até 4 TB. Blobs nunca são materializados na memória.
O uso de blobs para armazenamento de arquivos pode ser vantajoso, pois isso mantém o conjunto de dados completo em um único local (o banco de dados); Isso fornece backups e sincronização consistentes em um cluster de banco de dados.
Dentro deste projeto, são mencionadas algumas técnicas adicionais que podem ser úteis.