How-tos

Accessing Bluemix Object Storage using OpenStack Swift Client

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
Listing 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.

Add Comment
No Comments

Leave a Reply

Your email address will not be published.Required fields are marked *

More How-tos Stories

Spring Kafka application with Message Hub on Bluemix Kubernetes

In this post, I'll describe how to create two Spring Kafka applications that will communicate through a Message Hub service on Bluemix. One application will act as a Kafka message producer and the other will be a Kafka message consumer. We will deploy these applications to a Bluemix Kubernetes cluster.

Continue reading

Rapidly developing applications (part 3): implementing your microservices project

This is the third post in a series on microservices application development. The series provides a context for defining a cloud-based pilot project that best fits current needs and prepares for a longer-term cloud adoption decision.

Continue reading

How to migrate OpenWhisk api-experimental APIs

Earlier this year, the wsk api command was introduced as the replacement for the wsk api-experimental command. The wsk api-experimental command is now deprecated and will be withdrawn at the end of July, 2017. On August 1st, all APIs created with the wsk api-experimental command will be removed.

Continue reading