views:

189

answers:

3

Currently at my job, we are distributing installers for our windows base software via an apache web server on a Ubuntu server using apache authentication. When we initially started doing this we only had 3 projects to distribute and as such, 3 htpasswd files to manage. Since then, we have grown and are now distributing 8 projects as well as several sponsor specific variants of each of these. I addition, we have started distributing videos to potential research sponsors along with the software which are quite large. This has become a huge burden to manage all of the htpasswd files. So my question is, what is a better way to provide password protected access to large file sets in a web based manner? I am thinking that a CMS might be appropriate in this case, but I am interested in other ideas people may have. My specific requirements are:

  • Run on Apache/Linux. Specifically Ubuntu 6.06/Apache2
  • Free or relatively cheap, research doesn't provide for expensive enterprise software
  • Ability to easily create users and set an expiration date for their account
  • Ability to create a logical collections of files, and restrict users to only see these specific collections
  • Able to handle relatively large files (upwards of hundreds of megabytes though this is rare). In addition, there should be an easy method to add files outside of a web interface as uploading a 300 MB video wouldn't be feasible via the web. A command line client would probably be best.

Any suggestions of software that can handle the above requirements is greatly appreciated.

A: 

I might consider Plone with the LDAP plugin.

As a side note, I'd also suggest updating to the more recent LTS release of Ubuntu, but it's not mandatory :)

warren
+1  A: 

Se up apache to use LDAP for authentication. Then you can use a pre-existing LDAP frontend, or roll your own, to manage access rights and account expiration.

With LDAP, you could have a group for each project, so that users can have access to several projects by being in several groups.

Some info on setting up Apache for LDAP can be found here.

The directory can be managed by, for example, phpLDAPadmin or the old but good LDAP Browser/Editor if you prefer a offline java app.

gnud
A: 

It might be worth thinking about Amazon S3. It's not free, but it is very cheap.

You can't have users, but you can generate individually signed URLs for each file - URLs which will permit access for some pre-determined period of time.

So rather than having to register users, worry about distributing passwords and expiring them after some time, simply generate URLs for the files you need to share, and give the URLs to your users.

And there are any number of clients for putting files on S3 - if you want a command line interface, just mount it as a filesystem and "cp" the files there.

Toby White