OpenStack Storage (Swift)
Go to file
Anne Gentle 6f9ca6122e Adds v1 API documentation to doc/source/api
After discussion https://review.openstack.org/#/c/129384/ moving
to the doc directory in swift repo.

This lets us eliminate the object-api repo along with all the <service>-
api repos and move content to audience-centric locations.

Change-Id: Ia0d9973847f7409a02dcc1a0e19400a3c3ecdf32
2014-11-17 16:19:07 -06:00
bin Show the sum of every policy's amount in /recon/async 2014-11-14 20:47:04 +09:00
doc Adds v1 API documentation to doc/source/api 2014-11-17 16:19:07 -06:00
etc Return 403 on unauthorized upload when over account quota 2014-10-30 14:03:56 -07:00
examples Add a user variable to templates 2013-09-17 11:46:04 +10:00
swift Merge "Fix bug in swift-ring-builder list_parts" 2014-11-12 18:06:33 +00:00
test Merge "Fix bug in swift-ring-builder list_parts" 2014-11-12 18:06:33 +00:00
.coveragerc Align tox.ini and fix coverage jobs in jenkins. 2012-06-08 20:05:14 -04:00
.functests Move the tests from functionalnosetests 2014-01-07 15:58:11 +08:00
.gitignore fix(gitignore) : ignore *.egg and *.egg-info 2013-07-30 15:11:00 -04:00
.gitreview Add .gitreview config file for gerrit. 2011-10-24 15:05:49 -04:00
.mailmap updated AUTHORS and CHANGELOG for 2.2.0 2014-10-03 15:52:20 -07:00
.probetests Allow specify arguments to .probetests script 2013-12-24 01:18:19 -08:00
.unittests Fix coverage report for newer versions of coverage 2014-04-24 16:50:03 +00:00
AUTHORS updated AUTHORS and CHANGELOG for 2.2.0 2014-10-03 15:52:20 -07:00
CHANGELOG updated AUTHORS and CHANGELOG for 2.2.0 2014-10-03 15:52:20 -07:00
CONTRIBUTING.md added docs on specs workflow to CONTRIBUTING.md 2014-11-07 22:21:02 +11:00
LICENSE Convert LICENSE to use unix style line endings. 2012-12-19 12:48:27 -05:00
MANIFEST.in Add requirements files to the source distribution 2013-06-03 19:26:20 +04:00
README.md Correct URL in readme 2013-10-07 22:27:34 -07:00
babel.cfg add pybabel setup.py commands and initial .pot 2011-01-27 00:01:24 +00:00
requirements.txt warn against sorting requirements 2014-09-03 12:03:57 -05:00
setup.cfg Fix directory value for compile_catalog 2014-09-08 21:00:49 -07:00
setup.py taking the global reqs that we can 2014-05-21 09:37:22 -07:00
test-requirements.txt warn against sorting requirements 2014-09-03 12:03:57 -05:00
tox.ini updated hacking rules 2014-09-25 11:04:31 -07:00

README.md

Swift

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 http://docs.openstack.org/.

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.

Docs

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

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/server.py. 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/server.py.

For Deployers

Deployer docs are also available at http://docs.openstack.org/developer/swift/. A good starting point is at http://docs.openstack.org/developer/swift/deployment_guide.html

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 http://github.com/openstack/python-swiftclient.

Complete API documentation at http://docs.openstack.org/api/openstack-object-storage/1.0/content/


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

Thanks,

The Swift Development Team