IBM Bluemix provides object storage services to store and manage various types and large amounts of files by providing high-available, cloud-based storage that scales, is secure and cost-effective. The Bluemix services use SoftLayer Object Storage and make it easy to consume for Bluemix developers by provisioning accounts automatically when services are added to apps. SoftLayer Object Storage is based on the OpenStack Swift project so that you can use standard APIs to access your files.
Bluemix offers two different versions of the object storage as beta – Object Storage version 1 and Object Storage version 2. I originally assumed that version 2 is a successor of version 1 but the two versions actually address slightly different needs. Version 1 is similar to most other Bluemix services where you get your own account provisioned when adding a service to your CloudFoundry app. For example you could even have two accounts within one space. Version 2 provides a flexible usage model to allow usage of the same service not only from CloudFoundry apps, but also from containers or VMs or even outside of the public Bluemix context. When adding version 2 to an app the service creates a public cloud tenant and Swift account per Bluemix organization. You can then access your account also via the Cloud Management Dashboard to manage your containers, folders, files, etc.
There are several tutorials available how to use the object storage services. The tutorial Build a cloud storage application describes how to develop a Node.js application, how to do the authentication, how to list and upload files, etc. The tutorial Fine-grained access control for the Bluemix Object Storage service explains how to use the Single Sign On Service in a Node.js application to ensure that certain users of your app can only access files to which they have access.
This morning when I was trying to build a Java sample I ran into a deck from my colleague Joseph Chang who has done this already and published his sample. He uses the Java library Apache jclouds and reads the credentials from the Bluemix environment.