Community File Storage System

part of the ArsDigita Community System by David Hill and Aurelius Prochazka

The big picture

Suppose that a bunch of people need to collaboratively maintain a set of documents. These documents need to be organized in some way but you don't want to require the contributors to learn HTML or filter all emplacements of files through a Webmaster.

If you simply give everyone FTP access to a Web-accessible directory, you are running some big security risks. FTP is insecure and passwords are transmitted in the clear. A cracker might sniff a password, upload .pl, .tcl, and .adp pages, then grab those URLs from a Web browser. The cracker is now executing arbitrary code on your server with all the privileges that you've given your Web server.

This system allows users to save their files on our server so that they may:

Parameters

; for the ACS File-Storage System
[ns/server/yourserver/acs/fs]
SystemName=File Storage System
SystemOwner=file-administrator@yourserver.com
DefaultPrivacyP=f
; do you want to maintain a public tree for site wide documents
PublicDocumentTreeP=1
MaxNumberOfBytes=2000000
DatePicture=MM/DD/YY HH24:MI
HeaderColor=#cccccc
FileInfoDisplayFontTag=<font face=arial,helvetica size=-1>
UseIntermediaP=0

Details

Full-text Indexing

If you're running Oracle 8i (8.1.5 or later), you might want to build an Intermedia text index (ConText) on the contents of file versions. Intermedia incorporates very smart filtering software so that it can grab the text from within HTML, PDF, Word, Excel, etc. documents. It is also smart enough to ignore JPEGs and other pure binary formats.

Steps to using Intermedia:

Warning: Intermedia is a tricky product for users. The default mode is exact phrase matching, which means that the more a user types the fewer search results will be returned (a violation of the user interface guidelines in developers.html). So you might be letting yourself in for some education of users...

Future Improvements


aure@arsdigita.com