Dica: MongoDB para armazenar documentos PDF?

Bom dia, galera do GUJ.

Estou formulando uma estratégia para um sistema onde precisarei trabalhar com alguns arquivos no formato PDF. A principio, por ser meio óbvio e pela minha falta de experiência, eu decidi armazenar no banco de dados mesmo. Com isso eu teria algumas vantagens, mas perderia bastante em performance. Comecei a pesquisar bastante sobre esse assunto e como algumas grandes empresas trabalham. Vi muita gente recomendando armazenar os arquivos no file system. A vantagem é o ganho na performance, mas os pontos negativos são muitos (integridade do arquivo, controle de acesso, qualquer alteração na estrutura de diretórios teria um risco muito alto, etc). Conheci, então, o MongoDB, sistema de banco de dados orientado a documentos. Pelo que li, é perfeito para minha necessidade. Pretendo armazenar os documentos no Mongo e salvar o _id daquele insert em uma coluna do meu banco de dados relacional. Assim eu poderia facilmente recuperar o meu documento.
Para acessar o Mongo eu usaria uma API REST (restheart.org), ou seja, eu nunca acessaria diretamente o banco, seria somente através da API.

Como eu disse no inicio deste post, me falta experiencia em trabalhar com documentos e minha intenção aqui é pedir a opinião de vocês sobre essa minha estratégia. Alguém já fez algo semelhante? Que estratégia você usou? Consegue visualizar algum problema nessa minha escolha? Você faria algo de diferente?

Desde já, muito obrigado a todos vocês.

Att,
Alexandre.

Leia esse post : Salvando arquivos no MongoDB com GridFS

Documentação

{ },s.

1 curtida

Ola

alguns bancos de dados nosql podem ser usados para salvar arquivos como o pdf. ao ler o bynario vc recebe o content type e pode, inclusive, redirecionar os bytes para o usuario.

Cassandra, Riak e MongoDB podem fazer isso e vc tem api rest.

Entretanto na minha experiencia, nada substitui um bom filesystem - servindo o arquivo como estatio, só tem q cuidar pra não exceder o numero de arquivos em um diretorio ( ai se faz hash de diretorio baseado no ip, etc ).

Boa sorte.

1 curtida

Gostaria de agradecer a todos que responderam, muito obrigado mesmo.

Vou optar por usar o MongoDB com a API RESTHeart. Acredito que essa seja uma boa escolha.

Caso eu decida mudar para uma outra solução, vou atualizar o post com o motivo da mudança.

Abraços.