"Fossies" - the Fresh Open Source Software Archive

Member "mod_repository-0.3/index.html" (14 Mar 2000, 7424 Bytes) of package /linux/www/apache_httpd_modules/old/mod_repository-0.3.tar.gz:

Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. Alternatively you can here view or download the uninterpreted raw source code. A member file download can also be achieved by clicking within a package contents listing on the according byte size field.


The only way to store a lot of stuff :)

Current Version.

The current version is 0.3 and was released on Mar 14.


You can get it from either here via the web or here via ftp.


So what is Mod Repository?

It is all about storage.
Mod Repository can be used to create repository for content (images, html, pretty much anything...). I've used as an image server, a content server for a couple of differnent web logs, a place to archive messages for a BBS and as a place to store anonymous content (Give someone a URL to a piece of content, whiile it is concievable that someone could try to grab everything from a repository, it is quite unlikely). I am sure others can come up with their own ideas.
It works like this, someone posts a file or data to the repository address. The repository returns a key that you can then be used to retrieve the data. In large reposiories it becomes impractical to look for files once they are in the repository due to the size of the repository (the more files, the harder it is for someone who has access at the file level to find anything). It is also impractical for someone to try to grab a copy of everything in the repository since they would have to feed every possible key to he repository (the key is a 32 character word).

Where do I get it from?

You can get it from either here via the web or here via ftp.

What sort of license does it have?

You are pretty much free to use it as you please. Check out the License file with the distribution for more details. In all likelihood I will switch to either GNU or Apache style licensing at some point in the future.

How can I make suggestions for it?

Send email to brian@tangent.org.

How can I report a bug?

Send email to brian@tangent.org.

Is there a mailing list?

Not currently. If enough ask for it, I will though.

What HTTP methods are supported?

GET, POST, PUT, and DELETE are supported. Currently, POST and PUT do the same thing. You must use typical Apached directives to control who can do what, from what IP.

How do I install it?

From the INSTALL file:

Do you use DSO? If so just type make and

as long as apxs is in your path all things

should go smoothly.

If you are not using DSO you should be :)

If for some reason you need to compile

apache try the following:

1. Change the current directory to the directory containing your apache

source distribution.

2. Call the configure script as you normally would and add the switch:


3. Make sure the build environment is clean by issuing the following


> make clean

4. Build the new httpd binary with:

> make

5. Install the new httpd binary with:

> make install

What are the directives?

  • RepositoryRoot
  • RepositoryFileSize
  • RepositoryFileLevels
  • RepositoryTrigger
  • RepositoryType
  • RepositoryHideKey

  • What does RepositoryRoot do?

    Tells apache where to store files. Think of this as a DocumentRoot.

    What does RepositoryFileSize do?

    This limits the size of files that can be inserted into the repositoy. By default it is limited to 12megs. Increasing this number can open you up to denial of service attacks (for that matter the default may already be to high for you). A file is stored in memory during a POST or PUT. Multiply the number of servers that you make available by the size of files that you allow and you can see where very easily someone could overwhelm the machine.

    What does RepositoryFileLevels do?

    This number adjusts the number of directories that are created during file storage. Setting the number higher then 32 will cause the module to default to 32. If you do not specify this directive the module defaults to 3.

    What does RepositoryTrigger do?

    Using this you can speficy a URI that will be run whenever the a file type specified by RepositoryType is requested. An environmental variable called REPOSITORY_KEY contains the key.

    What does RepositoryType do?

    This allows you to specify a mime types that the trigger will be run against.

    What does RepositoryHideKey do?

    If the file type will be captured by a trigger and RepositoryHideKey is set to On, then the key will not be sent out to the requester (it is expected that you will do this in your trigger).

    What is the format of the info files?

    None at the moment. Currently they just contain a string which represents the content type based on the file extension of the file that was originally inserted. In the near future these files will become XML.

    What is the future?

    This is one component of a number that I have designed over the years that I have written for different tasks. Mod Repository started out as a perl script that I used to store massive numbers of images, and has evolved into a generic way for me to store files. The TODO file that comes with it talks about different features I mean to add to it.