Skip to main content

A file catalog with an HTTP frontend.

Project description

Filecat
=======

This is a WSGI application written for the ``repoze.bfg`` framework
which catalogs files in a Xapian database and provides a RESTful
interface to dispatch jobs and perform queries.

The application is configured with a ``path`` parameter which points
to a pool of files (a directory structure) and a ``host`` parameter
which provides a URL at which a webserver is configured to serve the
directory.

Components
----------

The main server thread starts up a Xapian connection and listens for
requests:

All queries are performed using the following HTTP API::

method path description
----------------------------------------------------------
POST /purge Clear index
POST /add Add file to index

@path Relative filename

POST /update Reindex file

@path Relative filename

POST /remove Remove file from index

@path Relative filename

GET /query Perform query

Parameters are passed as-is
to the Xapian query engine.


Query results
-------------

Queries return JSON structures with tuples of dicts on the following
form:

@url The URL where this file can be downloaded
@mimetype MIME-type of the file
@metadata Dict-like structure with mimetype-specific metadata*

*) The Hachoir Python package is used to provide this metadata for
image and video files.


Credits
-------

Malthe Borch and Stefan Eletzhofer



CHANGELOG
=========

Head
~~~~~

0.1 - (2008-10-03)
~~~~~~~~~~~~~~~~~~

- Remove print statements [seletz]

- Added tests for directory watch/observer. Fixed a bug where the observer would
emit absolute paths causing xapian to index absolute paths [seletz]

- Hook watcher in. The configured ``static`` directory is now watched. Changes
are now added to the Xapian queue [seletz]

- Created a directory observer thing which will allow us later to atomatically
wahtch a directory and issue Xapian operations [seletz]

- Hooked in ``modify`` and ``remove`` views. [seletz]

- Changed query parser -- it now just uses the passed-in query string. Also
added ability to limit/batch query results. [seletz]

- Configured Xapian indexer. This has to be done separately from the BFG
components, because the Xapian indexer runs in its own thread and thus uses
the global component registry. [seletz]

- Hooked up ``add`` view. [seletz]

- Implemented ``query`` view. [seletz]

- Fixed ``routes``setup wrt. permissions. [seletz]

- Changed svn layout [seletz]

- Added buildout [selez]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repoze.filecat-0.1.tar.gz (63.5 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page