January 11, 2017 | Written by: Dharmesh Bhakta
Share this post:
You can access Bluemix Object Storage from any environment as long as the environment has internet access. Common use cases for Object Storage include:
- Backing up volume data from your instances
- Using as an intermediary location when transferring large amounts of data
- Transferring data between environments that are not directly connected
- Acting as a central repository
Bluemix Object Storage is based on OpenStack Swift and can be accessed using any compatible client application. This article describes how to use the Python Swift client to work with containers and files.
Installing the Swift client
Install the Python Swift client using Python pip::
$ sudo pip install python-keystoneclient
$ sudo pip install python-swiftclient
Setting up the client
The Swift client takes the authentication information from the environment variables ST_AUTH, ST_USER, and ST_KEY for the endpoint URL, username, and password respectively. If you’re accessing Object Storage from the IBM Cloud OpenStack Services guest network, make sure that you use the private endpoint which has a FQDN like this: .objectstorage.service.networklayer.com.
Set authentication information
$ export ST_AUTH=https://.objectstorage.service.networklayer.com/auth/v1.0/
$ export ST_USER=
$ export ST_KEY=Working with containers
Working with containers
$ swift list
Creating a new container
$ swift post
Listing the content of a container
$ swift list
Working with objects
Adding a file to a container
$ swift upload
If you are uploading a file that is larger than 5GB, you must split it into smaller chunks. You can instruct the Swift client to handle this by supplying the -segment-size parameter::
$ swift upload –segment-size
Each segment is uploaded in parallel into a separate container named _segments. Once all the segments are uploaded, Swift creates a manifest file so that the segments can be downloaded in a single file named .
Adding a directory to a container
$ swift upload
This will upload the full directory structure as a relative path. For example, if you specify /mnt/volume1, the directory structure mnt/volume1 will be attached to all the file names to indicate the directory structure.
Downloading a file
$ swift download
Downloading a directory
Swift does not have a true directory structure, but uses the naming to represent a directory layout. To download a directory structure, use the -prefix parameter to indicate the directory or directory structure you want to download.:
$ swift download –prefix
Deleting a file
$ swift delete
As you can see, it pretty easy to use Bluemix Object Storage using the OpenStack Swift Client. You can easily starts backing up files to the Cloud!
Next we will see how you can share the content you have uploaded into the cloud using temporary URLs.