[Cascavel-pm] [DBD::mysql & DBI]: Como manipular arquivos de até 4Gb em BLOBs?

Luis Champs de Carvalho monsieur_champs em yahoo.com.br
Quarta Agosto 4 13:37:46 CDT 2004


  Colegas,

  Eu tenho uma tabela no meu banco de dados para coletar arquivos de
tamanho arbitrário, provenientes de uma interface de download/upload
baseada em web que estou construindo.

  Minha tabela, em SQL, simplificada para este problema:

  CREATE TABLE File(
    id INT(16) PRIMARY KEY,
    owner VARCHAR(40) NOT NULL,
    mime_type VARCHAR(120) NOT NULL,
    payload LARGEBLOB NULL
  );

  Estou usando (em camadas, de baixo para cima, nesta ordem):

  MySQL | DBD::mysql | DBI | Ima::DBI | Class::DBI | Class::DBI::Loader

  Não tenho preconceitos quanto a usar outras classes ou interromper este
fluxo de dados em qualquer pedaço acima do DBD::mysql e abaixo do
Class::DBI::Loader. :-)

  Não tenho pretensão de ter memória suficiente para carregar
completamente qualquer arquivo (de até 4Gb) para a memória, de forma a
poder inserí-lo usando um "UPDATE File SET payload = ?" ou "INSERT...".

  Gostaria de saber se alguém conhece alguma forma de obter um IO::Handle
ou algum "treco" similar onde eu pudesse executar write()'s POSIX ou coisa
parecida, e gravar os dados para o BLOB em pedaços menores (512 Bytes?).

  Obrigado por qualquer ajuda que vocês puderem me oferecer.
  Até breve.
-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Campos de Carvalho is BSc in Comp Science,
  PerlMonk [SiteDocClan], Cascavel-pm Moderator,
  Unix Sys Admin && Certified Oracle DBA
  http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=




Mais detalhes sobre a lista de discussão Cascavel-pm