Releasing FileStore to the public
Posted: 30 December 2007 at 03:54:00
One thing I'm going to try to do before going back to work on 2 January is get a Perl application released to the general public that Iodynamics was working on partly for a client and partly as a pet project. It's called FileStore and it's a mod_perl application for giving users Web-friendly access to files stored on a server.
The original inspiration for FileStore was Apache::FileManager which is still available via CPAN. Apache::FileManager was great... until Apache version 2 came out. I spent some time in the Apache::FileManager code to see how hard it would be to get it working under mod_perl version 2 and ended up wanting to cause bodily harm to Phillip Collins, its author.
I originally wrote Iodynamics::FileStore for internal use within our company several years ago. A handful of clients saw the benefit of using it to grant employees Web-access to Samba servers, but otherwise it was relegated to use only within our network. While it was a mod_perl handler, it relied heavily on Lincoln Stein's CGI.pm module for, well, everything. All the HTML was generated on the fly from CGI.pm calls. While that made for a compact self-contained application, it made it difficult to maintain and customize.
Another big weakness with Iodynamics::FileStore was that there was no built-in user authentication. It was typically deployed in a location configured for basic authentication with Apache. Once you made it past the basic username and password prompt, you had as many priviledges as anyone else- usually "777" permissions to the filesystem being served by the application.
So, in early 2007, I started redesigning the FileStore application thinking we could turn it into some sort of Web service people might actually pay for: An online, Web-based file server accessible from anywhere. Something like Alfresco, I guess, but without all the crap that gets in the way of being productive. (Can you tell I'm not too fond of Alfresco?)
Stephen Weeks and I took the original FileStore concept and added rudimentary role-based user authentication/authorization functions. We also created Template Toolkit templates to supplant all the CGI.pm presentation code. I worked with David Baker to design some simple icons for things like "Upload," "Copy," "Rename," and "Delete."
Then, Iodynamics went the way of the cuckoo.
A month or so ago, David Baker asked me about the FileStore project- wondering if he could use it for a personal project. I dusted off the code and installed it on his server and started thinking about releasing it for public consumption.
I'm ready to start doing just that. Eventually, I'd like to get Apache::FileStore in CPAN, but a lot of administrative work will need to be done on the project before that can happen. A minimal test suite will need to be written as well as documentation in POD format.
In the meantime, here's a screenshot. I'll make a tarball available soon.
