Simple replicated file storage
Project description
[![Build Status](https://travis-ci.org/raphaelm/cockatiel.svg?branch=master)](https://travis-ci.org/raphaelm/cockatiel)
THIS IS HIGHLY EXPERIMENTAL, DON’T USE IT IN PRODUCTION (YET)
cockatiel is a replicating file server for small-scale setups. It is intended to be used e.g. for handling user-uploaded files to a web application in a redundant way.
cockatiel doesn’t try to be a CDN, but to implement the simplest solution that fulfills our needs. Currently, cockatiel makes the following assumptions. If those won’t work for you, you should probably be looking for a CDN-like solution.
Assumptions
All files can and should be on all cockatiel servers, no sharding
File names don’t matter to you, we’ll add the file’s hashsum to the name
Files get replicated asynchronously. If that fails, the request will be retried eventually.
Files don’t change (if they do, they get a new filename)
Adding or removing nodes from the cluster requires manual intervention
Files are small enough to be held in memory for a short period
Requirements
Python 3.4+
Installation
TBD
Contributing
Check out our git repository
Install the dependencies using pip install -r requirements.txt. You’ll need a fairly recent pip version and we recommend using virtual environments.
You can run all the functional tests using py.test functional_tests/, the unit tests using py.test unit_tests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.