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
---------------------------------------------------------
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 |