[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