storing PDFs
I have written software that will dynamically create PDF documents used
within my web application. Because each document is unique, I would
like to store the resultant PDF into a field of the DB. Currently I
just store the file to the server's hard drive and insert a path to the
file the database, but I would like to also store the actual file
itself in a field for redundancy purposes and other business reasons.
I am curious to know what everyone thinks would be the best way to
store PDF files in postgres??
On Dec 29, 2005, at 16:45 , littlebutty wrote:
I am curious to know what everyone thinks would be the best way to
store PDF files in postgres??
The BYTEA data type should do the trick.
Michael Glaesemann
grzm myrealbox com
Michael Glaesemann wrote:
On Dec 29, 2005, at 16:45 , littlebutty wrote:
I am curious to know what everyone thinks would be the best way to
store PDF files in postgres??The BYTEA data type should do the trick.
I did exactly this for a DB I did for a former employer of mine.
Works great.
--
Larry Rosenman http://www.lerctr.org/~ler
Phone: +1 512-248-2683 E-Mail: ler@lerctr.org
US Mail: 430 Valona Loop, Round Rock, TX 78681-3683 US
On Dec 29, 2005, at 5:45 PM, littlebutty wrote:
I have written software that will dynamically create PDF documents
used
within my web application. Because each document is unique, I would
like to store the resultant PDF into a field of the DB. Currently I
just store the file to the server's hard drive and insert a path to
the
file the database, but I would like to also store the actual file
itself in a field for redundancy purposes and other business reasons.
I am curious to know what everyone thinks would be the best way to
store PDF files in postgres??
The BYTEA type works for this purpose. In cases where the content can
be easily regenerated, I have also found it useful to put these
columns in tables within a separate schema and reference them from
the primary table with the details about the document. This allows
the database to be dumped without the large bytea fields which makes
daily backups smaller and easier to manage.
John DeSoi, Ph.D.
http://pgedit.com/
Power Tools for PostgreSQL
littlebutty wrote:
I have written software that will dynamically create PDF documents used
within my web application. Because each document is unique, I would
like to store the resultant PDF into a field of the DB. Currently I
just store the file to the server's hard drive and insert a path to the
file the database, but I would like to also store the actual file
itself in a field for redundancy purposes and other business reasons.
I am curious to know what everyone thinks would be the best way to
store PDF files in postgres??---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly
You can use ByteA but the size will be about 4 times bigger
You can use varchar and encode to Base64 and wil be abour 30% bigger
Leonel
Leonel Nunez <lnunez@enelserver.com> writes:
You can use ByteA but the size will be about 4 times bigger
Are you sure? The intermediate form for bytea (escaped single-quoted
strings) is pretty inefficient, but once in the database the data is
stored as binary and can even be compressed.
Plus, I'm pretty sure the protocol supports transmitting bytea fields
as binary over the wire if your client software can handle it.
-Doug
Doug McNaught wrote:
Leonel Nunez <lnunez@enelserver.com> writes:
You can use ByteA but the size will be about 4 times bigger
Are you sure? The intermediate form for bytea (escaped single-quoted
strings) is pretty inefficient, but once in the database the data is
stored as binary and can even be compressed.Plus, I'm pretty sure the protocol supports transmitting bytea fields
as binary over the wire if your client software can handle it.-Doug
I've made 2 pg_dumps from 2 different databases , 1 from a ByteA
stored images and 1 from the same images but stored as Base64 on
varchar and the
sql file for byteA was 4 times bigger than the size of all the
images on the Filesystem
and the sql for varchar with base64 was about 30% bigger than the
size on the filesystem
but If the bytea is encoded only for dump and load and on the
database are same size as the original file
then that's great and my perception is wrong
I'll check that
Leonel
but If the bytea is encoded only for dump and load
I think that's the case, as with all binary types dump (consider numbers for
instance) to an ASCII encoding.
--
Scott Ribe
scott_ribe@killerbytes.com
http://www.killerbytes.com/
(303) 665-7007 voice