I’ve been playing with Django quite a bit of late working on a pet project. This particular project involves uploading video files to Amazon S3 for processing. Because the files are large, I didn’t want to deal with the overhead of having the browser upload them to my server and then having the server upload the files to S3. Rather, I wanted to implement browser-based uploads.

Another requirement, also due to the large file size, was the ability to display a progress bar as the file is being uploaded. It turns out there are a number of projects available that would do this, including swfupload and the one I chose, Uploadify.

I searched high and low for an off-the-shelf package to integrate either of these into my app, but I didn’t find anything that handled the upload and seemed to work well with Amazon S3. (Of course now that I understand how all the pieces work together I probably could have adapted an existing solution.)

So of course I rolled my own, and the result is django-uploadify-s3.

Django Uploadify-S3 (DUS3) is a Django application aims to make it easy for developers to add browser-based uploads to Amazon S3 to their Django applications. DUS3 uses the Uploadify jQuery plugin for full featured cross-platform uploads with queues, progress bars, events, etc.

DUS3 is configuration driven, meaning you don’t need to add any Uploadify or S3-specific code to your project to use these tools.

DUS3 is open source and can be found on github: https://github.com/sbc/django-uploadify-s3.