Re: Como puedo guardar archivos binarios en una tabla de una BD Postgresql

From: Martín Marqués <martin(at)bugs(dot)unl(dot)edu(dot)ar>
To: pgsql-es-ayuda(at)postgresql(dot)org
Cc: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Victor Montenegro Isidin <vhmontenegro(at)gmail(dot)com>
Subject: Re: Como puedo guardar archivos binarios en una tabla de una BD Postgresql
Date: 2005-07-22 11:44:29
Message-ID: 200507220844.29468.martin@bugs.unl.edu.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Por Dios Alvaro, si se hace (o existe) algún FAQ en español de PostgreSQL,
este mail tienen que estar ahí!!!! :-D

El Jue 21 Jul 2005 22:52, Alvaro Herrera escribió:
> On Thu, Jul 21, 2005 at 08:00:57AM -0400, Victor Montenegro Isidin wrote:
>
> > Necesito guardar en una tabla de una BD postgres archivos binarios, es
> > decir, archivos .zip .jpg .doc, etc.
> > Como puedo subirlos a una BD Postgresql (con PHP)
>
> Resumiendo todas las respuestas que dieron, tienes 4 opciones:
>
> 1. almacenar el archivo fuera de la base de datos, y almacenar solamente
> el PATH. No es mala opcion, pero necesitas un programa externo que haga
> limpieza.
>
> 2. almacenar usando "large objects".
>
> 3. almacenar usando el tipo Bytea. Ventaja: tienes que hacer una
> conversion al insertar y extraer, puesto que hay que escapar los
> caracteres "ascii 0" (NUL), backslash y otros (AFAIR el unico otro es la
> comilla simple). Alternativamente puedes usar un mecanismo que no
> necesite escapar, pero entiendo que no esta implementado en PHP.
>
> 4. almacenar usando el tipo text, codificado en base64 o algun
> equivalente. Desventaja: hay un consumo de CPU no despreciable para
> hacer la conversion (mas costosa que la alternativa 3)
>
>
> Con respecto a Bytea y Text, podria ser recomendable desactivar la
> compresion de esa columna, para ahorrar algo de CPU, dependiendo de si
> los archivos que almacenes sean muy compresibles (es una variante de
> ALTER TABLE que dice algo de "STORAGE". Lee el manual.)
>
> Con respecto a la alternativa 2, es lo que hay en un articulo que habla
> sobre almacenar BLOBs en Postgres que citaba otra persona. Nota que en
> Postgres no existen los "blobs"; aca el equivalente es el tipo Bytea,
> apocope de "byte array". Ademas el autor del articulo comete el error
> de confundir eso con la interfaz de objetos grandes, que es un tema
> completamente distinto.
>
>
> Tu tienes que decidir cual de esas alternativas escoger. Una vez que
> hayas escogido te preocupas de ver exactamente como es el codigo para
> hacerlo.
>
> --
> Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
> "Nunca se desea ardientemente lo que solo se desea por razón" (F. Alexandre)
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 8: explain analyze es tu amigo
>

--
select 'mmarques' || '@' || 'unl.edu.ar' AS email;
---------------------------------------------------------
Martín Marqués | Programador, DBA
Centro de Telemática | Administrador
Universidad Nacional
del Litoral
---------------------------------------------------------

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Chema Cortes 2005-07-22 12:18:18 Re: Como puedo guardar archivos binarios en una tabla de una BD Postgresql
Previous Message Victor Montenegro Isidin 2005-07-22 09:21:31 Almacenar las claves encriptadas en una Tabla