IBM Cloud Docs
About IBM COS SDKs

About IBM COS SDKs

IBM Cloud® Object Storage provides SDKs for Java, Python, NodeJS, and Go featuring capabilities to make the most of IBM Cloud Object Storage.

These SDKs are based on the official AWS S3 API SDKs, but are modified to use IBM Cloud features like IAM, Key Protect, Immutable Object Storage, and others.

Table 1. Features supported per SDK
Feature Java Python NodeJS GO CLI Terraform
IAM API key support Checkmark icon Checkmark icon Checkmark icon Checkmark icon Checkmark icon Checkmark icon
Managed multipart uploads Checkmark icon Checkmark icon Checkmark icon Checkmark icon Checkmark icon
Managed multipart downloads Checkmark icon Checkmark icon Checkmark icon Checkmark icon
Extended bucket listing Checkmark icon Checkmark icon Checkmark icon Checkmark icon Checkmark icon
Version 2 object listing Checkmark icon Checkmark icon Checkmark icon Checkmark icon
Key Protect Checkmark icon Checkmark icon Checkmark icon Checkmark icon Checkmark icon
SSE-C Checkmark icon Checkmark icon Checkmark icon Checkmark icon
Archive rules Checkmark icon Checkmark icon Checkmark icon Checkmark icon Checkmark icon
Retention policies Checkmark icon Checkmark icon Checkmark icon Checkmark icon Checkmark icon
Aspera high-speed transfer Checkmark icon Checkmark icon

IAM API key support

Allows for creating clients with an API key instead of a pair of Access and Secret keys. Token management is handled automatically, and tokens are automatically refreshed during long-running operations.

Managed multipart uploads

Using a TransferManager class, the SDK handles all the necessary logic for uploading objects in parallel parts.

Managed multipart downloads

Using a TransferManager class, the SDK handles all the necessary logic for downloading objects in parallel parts.

Extended bucket listing

This extension to the S3 API returns a list of buckets with their LocationConstraint. All buckets in a service instance are always returned on a list request, not just the subset that is located in the region of the target endpoint. This API is useful for finding where a bucket is located.

Version 2 object listing

Version 2 listing allows for more powerful scoping of object listings.

Key Protect

IBM® Key Protect for IBM Cloud® helps you create encrypted keys for apps across IBM Cloud® services. Keys are secured by FIPS 140-2 Level 3 cloud-based hardware security modules (HSMs) that protect against the theft of information. Hyper Protect Crypto Services is a single-tenant, dedicated HSM that is controlled by you. The service is built on FIPS 140-2 Level 4 hardware, the highest offered by any cloud provider in the industry.

SSE-C

IBM Cloud® Object Storage provides several options to encrypt your data. By default, all objects that are stored in IBM Cloud Object Storage are encrypted by using randomly generated keys and an all-or-nothing-transform (AONT). While this default encryption model provides at-rest security, some workloads need full control over the data encryption keys used. You can manage your keys manually by supplying your own encryption keys - referred to as Server-Side Encryption with Customer-Provided Keys (SSE-C).

Archive rules

IBM Cloud® Object Storage Archive is a low-cost option for data that is rarely accessed. You can migrate data from any of the storage tiers (Standard, Vault, Cold Vault, and Flex) to a long-term offline archive.

Retention policies

Immutable Object Storage maintains data integrity in a WORM (Write-Once-Read-Many) manner. Objects can't be modified until the end of their retention period and the removal of any legal holds.

Aspera high-speed transfer

Aspera high-speed transfer improves data transfer performance under most conditions, especially in networks with high latency or packet loss. Instead of the standard HTTP PUT, Aspera high-speed transfer uploads the object by using the FASP protocol.