OpenStack Storage (Swift)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
John Dickinson e00da6cabc properly quote www-authenticate header value 8 years ago
bin Merge "Add --quoted option to swift-temp-url" 8 years ago
doc Fixes typo in man page 8 years ago
etc Merge "xLO bug with auth tokens expiring during download." 8 years ago
examples Add a user variable to templates 9 years ago
locale Reverted the pulling out of various middleware: 10 years ago
swift properly quote www-authenticate header value 8 years ago
test properly quote www-authenticate header value 8 years ago
.coveragerc Align tox.ini and fix coverage jobs in jenkins. 10 years ago
.functests Move the tests from functionalnosetests 8 years ago
.gitignore fix(gitignore) : ignore *.egg and *.egg-info 9 years ago
.gitreview Add .gitreview config file for gerrit. 11 years ago
.mailmap Update mailmap for Morgan Fainberg 8 years ago
.probetests Allow specify arguments to .probetests script 9 years ago
.unittests Fix coverage report for newer versions of coverage 8 years ago
AUTHORS Update mailmap for Morgan Fainberg 8 years ago
CHANGELOG updates for 1.13.1 release 8 years ago HEAD on account returns 410 if account was deleted and not yet reaped 9 years ago
LICENSE Convert LICENSE to use unix style line endings. 10 years ago Add requirements files to the source distribution 9 years ago Correct URL in readme 9 years ago
babel.cfg add pybabel commands and initial .pot 11 years ago
requirements.txt taking the global reqs that we can 8 years ago
setup.cfg Add profiling middleware in Swift 8 years ago taking the global reqs that we can 8 years ago
test-requirements.txt Fix test-requirements.txt 8 years ago
tox.ini Added a tox job for running flake8 under Python 3 8 years ago


A distributed object storage system designed to scale from a single machine to thousands of servers. Swift is optimized for multi-tenancy and high concurrency. Swift is ideal for backups, web and mobile content, and any other unstructured data that can grow without bound.

Swift provides a simple, REST-based API fully documented at

Swift was originally developed as the basis for Rackspace's Cloud Files and was open-sourced in 2010 as part of the OpenStack project. It has since grown to include contributions from many companies and has spawned a thriving ecosystem of 3rd party tools. Swift's contributors are listed in the AUTHORS file.


To build documentation install sphinx (pip install sphinx), run python build_sphinx, and then browse to /doc/build/html/index.html. These docs are auto-generated after every commit and available online at

For Developers

The best place to get started is the "SAIO - Swift All In One". This document will walk you through setting up a development cluster of Swift in a VM. The SAIO environment is ideal for running small-scale tests against swift and trying out new features and bug fixes.

You can run unit tests with .unittests and functional tests with .functests.

Code Organization

  • bin/: Executable scripts that are the processes run by the deployer
  • doc/: Documentation
  • etc/: Sample config files
  • swift/: Core code
    • account/: account server
    • common/: code shared by different modules
      • middleware/: "standard", officially-supported middleware
      • ring/: code implementing Swift's ring
    • container/: container server
    • obj/: object server
    • proxy/: proxy server
  • test/: Unit and functional tests

Data Flow

Swift is a WSGI application and uses eventlet's WSGI server. After the processes are running, the entry point for new requests is the Application class in swift/proxy/ From there, a controller is chosen, and the request is processed. The proxy may choose to forward the request to a back- end server. For example, the entry point for requests to the object server is the ObjectController class in swift/obj/

For Deployers

Deployer docs are also available at A good starting point is at

You can run functional tests against a swift cluster with .functests. These functional tests require /etc/swift/test.conf to run. A sample config file can be found in this source tree in test/sample.conf.

For Client Apps

For client applications, official Python language bindings are provided at

Complete API documentation at

For more information come hang out in #openstack-swift on freenode.


The Swift Development Team