Total Knowledge Projects Jobs Clientele Contact

Multimedia Handling

Personal tools
From Total Knowledge
Revision as of 22:49, 23 May 2011 by Iluxa (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

Contents

General

Actual media data will be stored on file system. In case we need more then one CPPSERV instance running, media files will be stored on some primary server, and then distributed to secondary servers later on. Once media file is distributed to some server, it will be reflected as such in database. Primary server is the one used by end user to upload the media file. When reference to given media file is needed, full URL will refer to same server CPPSERV is running on if database claims it's available, or to the primary server if not.

Metadata

Following data will be stored in the database:

  • type of media (image, flash, etc.). Perhaps just mime type
  • file name
  • Usual UMO info
  • list of servers this image is on

Translations

There are two ways to handle translations:

  • Only translate title and description, but always refer to the same actual media file
  • Allow to translate everything

Description-only implementation

This one is simple - we make file name an UMO attribute. Everything else just takes care of itself

Fully translatable implementation

We could say that content of media object is XML, and keep all the metadata in there. In this case we could simply store different file names for different translations. The disadvantage of this approach is that we can't efficiently do a mapping from file name back to the UMO in database.

Alternative

Instead of storing data on file system we could store whole thing in database. The problem with this approach is that PostgreSQL support for blobs is somewhat lacking.