The OpenStack Object Storage Service provides the swift client, which is a command-line interface (CLI). Use this client to list objects and containers, upload objects to containers, and download or delete objects from containers. You can also gather statistics and update metadata for accounts, containers, and objects.
This client is based on the native swift client library,
client.py
, which seamlessly
re-authenticates if the current token expires during
processing, retries operations multiple times, and provides a
processing concurrency of 10.
To create a container:
$ swift post
CONTAINER
Replace
CONTAINER
with the name of your container.Users have roles on accounts. For example, a user with the admin role has full access to all containers and objects in an account. You can set access control lists (ACLs) at the container level and support lists for read and write access, which you set with the
X-Container-Read
andX-Container-Write
header, respectively.To give a user read access, use the swift post command with the
-r
parameter. To give a user write access, use the-w
parameter.The following example enables the
testuser
user to read objects in the container:$ swift post -r 'testuser'
You can also use this command with a list of users.
If you use StaticWeb middleware to enable Object Storage to serve public web content, use
.r:
, followed by a list of allowed referrers.The following command gives object access to all referring domains:
$ swift post -r '.r:*'
To list all containers:
$ swift list
To check the status of containers:
$ swift stat Account: AUTH_7b5970fbe7724bf9b74c245e77c03bcg Containers: 2 Objects: 3 Bytes: 268826 Accept-Ranges: bytes X-Timestamp: 1392683866.17952 Content-Type: text/plain; charset=utf-8
You can also use the swift stat command with the
ACCOUNT
orCONTAINER
names as parameters.$ swift stat
CONTAINER
Account: AUTH_7b5970fbe7724bf9b74c245e77c03bcg Container: storage1 Objects: 2 Bytes: 240221 Read ACL: Write ACL: Sync To: Sync Key: Accept-Ranges: bytes X-Timestamp: 1392683866.20180 Content-Type: text/plain; charset=utf-8
To upload an object to a container:
$ swift upload
CONTAINER
OBJECT_FILENAME
To upload in chunks, for large files:
$ swift upload -S
CHUNK_SIZE
CONTAINER
OBJECT_FILENAME
To check the status of the object:
$ swift stat
CONTAINER
OBJECT_FILENAME
Account: AUTH_7b5970fbe7724bf9b74c245e77c03bcg Container: storage1 Object: images Content Type: application/octet-stream Content Length: 211616 Last Modified: Tue, 18 Feb 2014 00:40:36 GMT ETag: 82169623d55158f70a0d720f238ec3ef Meta Orig-Filename: images.jpg Accept-Ranges: bytes X-Timestamp: 1392684036.33306To list objects in a container:
$ swift list
CONTAINER
OBJECT_FILENAME
To download an object from a container:
$ swift download
CONTAINER
OBJECT_FILENAME