vishal saberwal wrote:
hi,

My server is Postgres 8.0.1 on fedora core2.
My clients are remote and interface with my server using .NET GUI.

We are trying to store many images/icons/audio/video clips in our system.
We expect many of these. The way we are doing it is using Hierarchical File System.

HFS is an old Apple Macintosh filesystem - an unlikely choice. You'll probably find it's ext3.

I understand we need to limit the size of these directories by controlling number of resources in each directory.

Less important nowadays than it used to be, but usually done via hashing the filename. So, file 123456.gif is stored in 1/2/3/123456.gif

The way i want to let anone access these resources is only through stored procedures rather than direct downloading.

Why?
What are the benefits of this system?

I am trying to create stored procedure/function API for the same. These functions will check for the permissions for the user and/or the file, check the location from the schema and then would "stream" it out for the GUI to use.

Why not just set up a webserver and get it to authenticate to your database?

The question is:
(1) How do i use the database stored procedures/functions as a tunnel for just streaming the data rather than storing it in database? That is, a function that given a Image ID for example, will read the location from the table and then just go to the location and stream out the bits. (2) Am i right in saying that it can't solely be done iwth plpgsql but would need somem c/c++ api.

Any of the "untrusted" languages (which of course includes "C"). File access will be different in each of course - pick whichever you are most familiar with. The key differences between a "trusted" and "untrusted" version of a language are:
1. Untrusted languages can access the rest of the system
2. Functions in untrusted languages can only be added by a superuser.

(3) Has anyone here done something like this and can share with me how he/she implemented this.

I did do my homework of googling for something like this but may be my search skills were not strong enough to find some substantial information/HOW TOs or examples.

Well, there is the "procedural languages" section of the manuals. It might also be worth checking on pgfoundry to see if there is anything useful there.

--
  Richard Huxton
  Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to