gijzelaerr/FileBender
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
INTRODUCTION
============
This is filebender, the django clone of filesender. I use this for prototyping
things that probably will be implemented into filesender.
BIG FAT DISCLAMER: This is no way production ready, and just a toy thingy.
FileSender and FileBender are client side software to share (large) files over
HTTP using a browser only. It supports large files. FileBender also supports
client side file encryption.
LICENSE
=======
All code in this repo is released under the conditions of the Apache License 2.0
unless indicated infile otherwise.
REQUIREMENTS
============
server:
* Django 1.3
for saml:
* python-saml2
* https://code.launchpad.net/~lgs/pysaml2/main
* http://code.google.com/p/django-saml2-sp/
* xmlsec1
* pip install httplib2
* pip install decorator
client:
* Google Chrome 13+ OR
* Mozilla Firefox 6+ OR
* Safari 6+ (probably, not yet released)
* Internet Explorer 10+ (probably, not yet released)
Not working:
* Safari 5
* Internet Explorer 9
* Opera (11.52/11.60)
* Firefox 8, somehow the webwokers stopped working.
notes:
* Google Chrome 15 seems te be really slow while encrypting in a worker thread. This seems to be solved in the current
dev version (17).
* There is a memory leak in Firefox (probably) in FileReader that inflates memory usage while encrypting.
* Safari 5 can't slice blobs
* Internet Explorer lacks the complete File API
* Opera misses the XMLHttpRequest FormData stuff (XMLRequest level 2)
* Firefox 7 and 8 can't load a webworker from localhost, this is probably solved in ff9
CREDITS
=======
This project uses:
* Django
* Stanford Javascript Crypto Library http://crypto.stanford.edu/sjcl/
* Downloadify (https://github.com/dcneiner/Downloadify)
PERFORMANCE
===========
Encryption speed at 5MB chunks with default crypt settings is about 1.8MB/s
on a Intel 2500K met 16GB mem with Google Chrome. Upload doesn't require
a lot of memory, but download does. This is because the file needs to be
reconstructed in memory. Maybe LocalStorage Javascript can solve this in the
future.