Swift container operations
A container is a mechanism for storing data objects. An account can have many containers, but container names must be unique. This API enables a client to create a container, set access controls and metadata, retrieve a container’s contents, and delete a container. Since this API makes requests related to information in a particular user’s account, all requests in this API must be authenticated unless a container’s access control is deliberately made publicly accessible, that is, allows anonymous requests.
Note: The Amazon S3 API uses the term bucket to describe a data container. When you hear
someone refer to a bucket within the Swift API, the term bucket might be construed as
the equivalent of the term container.
One facet of object storage is that it does not support hierarchical paths or directories.
Instead, it supports one level consisting of one or more containers, where each container might have
objects. The RADOS Gateway’s Swift-compatible API supports the notion of pseudo-hierarchical
containers, which is a means of using object naming to emulate a container, or directory
hierarchy without actually implementing one in the storage system. You can name objects with
pseudo-hierarchical names, for example, photos/buildings/empire-state.jpg, but container names
cannot contain a forward slash (
/) character.Important: When uploading
large objects to versioned Swift containers, use the
--leave-segments option with
the python-swiftclient utility. Not using --leave-segments
overwrites the manifest file. Consequently, an existing object is overwritten, which leads to data
loss.