---
name: cloud-object-storage-developers
title: For developers
description: The powerful features of IBM Cloud&reg; Object Storage are available to a developer directly from the command line.
last-updated: 2024-07-24
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/cloud-object-storage?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# For developers
{: #gs-dev}

The powerful features of IBM Cloud&reg; Object Storage are available to a developer directly from the command line.
{: shortdesc}

First, ensure that you have the [IBM Cloud&reg; Platform CLI](https://cloud.ibm.com/docs/cli/index.html?format=markdown) and [IBM Developer Tools](https://cloud.ibm.com/docs/cloudnative/idt/index.html?format=markdown) installed.

## Create an instance of IBM Cloud Object Storage
{: #gs-dev-provision}

1. First, make sure that you have an API key. Get it from [IBM Cloud Identity and Access Management](https://cloud.ibm.com/iam/apikeys).
2. Log in to IBM Cloud Platform by using the CLI. It's also possible to store the API key in a file or set it as an environment variable.

    ```sh
    ibmcloud login --apikey <value>
    ```
    {: pre}

3. Next, create an instance of IBM Cloud Object Storage specifying the name for the instance and the Standard plan (see [Choosing a plan and creating an instance](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-provision&format=markdown)). Now you have a CRN for the instance.

    ```sh
    ibmcloud resource service-instance-create <instance-name> cloud-object-storage <plan> global
    ```
    {: pre}

When trying to create a new instance, if you encounter the error `No resource group targeted`, it indicates that the default resource group is not available and that a resource group must be explicitly set. A list of available resource groups can be found using `ibmcloud resource groups` and the target can be set with `ibmcloud target -g <resource-group>`.
{: tip}

The [Getting Started guide](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-getting-started-cloud-object-storage&format=markdown) walks through the basic steps of creating buckets and objects, as well as inviting users and creating policies. A list of basic 'curl' commands can be found [here](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-curl&format=markdown).

Learn more about using the IBM Cloud CLI to create applications, manage Kubernetes clusters, and more [in the documentation](https://cloud.ibm.com/docs/cli?topic=cli-ibmcloud_cli&format=markdown).

## Using the API
{: #gs-dev-api}

For managing data stored in Object Storage, you can use S3 API compatible tools like the [AWS CLI](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-aws-cli&format=markdown) with [HMAC credentials](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-uhc-hmac-credentials-main&format=markdown) for compatibility. As IAM tokens are relatively easy to work with, `curl` is a good choice for basic testing and interaction with your storage. More information can be found in the [`curl`](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-curl&format=markdown) and the [API](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-compatibility-api&format=markdown) documentation.

## Using libraries and SDKs
{: #gs-dev-sdk}

IBM COS SDKs are available for [Python](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-python&format=markdown), [Java](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-java&format=markdown), [Go](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-using-go&format=markdown), and [Node.js](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-node&format=markdown). These libraries are forked and modified versions of the AWS S3 SDKs that support [IAM token-based authentication](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-iam-overview&format=markdown), as well as support for [Key Protect](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-encryption&format=markdown).

## Building applications on IBM Cloud
{: #gs-dev-apps}

IBM Cloud&reg; provides flexibility to developers in choosing the right architectural and deployment options for a given application. Run your code on [bare metal](https://cloud.ibm.com/catalog/infrastructure/bare-metal), in [virtual machines](https://cloud.ibm.com/catalog/infrastructure/virtual-server-group), in [containers](https://cloud.ibm.com/kubernetes/catalog/cluster), or by using a [serverless framework](https://cloud.ibm.com/docs/solution-tutorials?topic=solution-tutorials-serverless-webapp&format=markdown).

The [Cloud Native Computing Foundation](https://www.cncf.io) fostered [Kubernetes](https://kubernetes.io) container orchestration framework, which forms the foundation for the IBM Cloud&reg; Kubernetes Service. Developers who want to use Object Storage for persistent storage in their Kubernetes applications can learn more at the following links:

 * [Choosing a storage solution](https://cloud.ibm.com/docs/containers?topic=containers-storage-plan&format=markdown)
 * [Comparison table for persistent storage options](https://cloud.ibm.com/docs/containers?topic=containers-storage-plan&format=markdown)
 * [Main COS page](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-getting-started-cloud-object-storage&format=markdown)
 * [Installing COS](https://cloud.ibm.com/docs/containers?topic=containers-storage_cos_install&format=markdown)
 * [Creating COS service instance](https://cloud.ibm.com/docs/containers?topic=containers-storage-cos-understand&format=markdown#create_cos_service)
 * [Decide on the configuration](https://cloud.ibm.com/docs/containers?topic=containers-storage_cos_install&format=markdown#configure_cos)
 * [Creating a COS Kubernetes secret](https://cloud.ibm.com/docs/containers?topic=containers-storage-cos-understand&format=markdown#create_cos_secret)
 * [Kubernetes back up and restore information](https://cloud.ibm.com/docs/containers?topic=containers-storage_br&format=markdown)
 * [Kubernetes Storage Class reference](https://cloud.ibm.com/docs/containers?topic=containers-storage_cos_reference&format=markdown)