Install & Compatibility
Where this runs
tested against v2.16.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.938s · 30.5MB
glibcpy 3.10–3.910 runs
installs and imports cleanly · install 5.0s · import 0.850s · 31MB
29MB installed
● package 29MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
TransferManager
✓ from ibm_boto3.s3.transfer import TransferManager
✗ from ibm_cos_sdk.s3.transfer import TransferManager
This quickstart demonstrates how to initialize the IBM COS client and then use the `TransferManager` to upload and download a file. It expects IBM COS credentials and bucket name to be set as environment variables.
import os
import ibm_cos_sdk
from ibm_cos_sdk.s3.transfer import TransferManager
# Configure IBM COS credentials and endpoint
# Ensure these environment variables are set:
# IBM_COS_ENDPOINT, IBM_COS_API_KEY_ID, IBM_COS_SERVICE_INSTANCE_ID, IBM_COS_BUCKET
ENDPOINT = os.environ.get('IBM_COS_ENDPOINT', 'https://s3.us.cloud-object-storage.appdomain.cloud')
API_KEY_ID = os.environ.get('IBM_COS_API_KEY_ID', '')
SERVICE_INSTANCE_ID = os.environ.get('IBM_COS_SERVICE_INSTANCE_ID', '')
BUCKET_NAME = os.environ.get('IBM_COS_BUCKET', 'my-test-bucket')
if not all([API_KEY_ID, SERVICE_INSTANCE_ID, BUCKET_NAME]):
print("Error: IBM COS environment variables not set. Please set IBM_COS_API_KEY_ID, IBM_COS_SERVICE_INSTANCE_ID, IBM_COS_BUCKET.")
exit(1)
# Initialize COS client
cos_client = ibm_cos_sdk.client(
's3',
ibm_api_key_id=API_KEY_ID,
ibm_service_instance_id=SERVICE_INSTANCE_ID,
config=ibm_cos_sdk.config.Config(signature_version='oauth'),
endpoint_url=ENDPOINT
)
# Create a TransferManager instance
transfer_manager = TransferManager(cos_client)
# --- Example: Upload a file ---
local_file_path = 'local_file.txt'
key_name = 'remote_object.txt'
# Create a dummy local file for upload
with open(local_file_path, 'w') as f:
f.write('Hello, IBM COS Transfer Manager!')
print(f"Uploading {local_file_path} to {BUCKET_NAME}/{key_name}...")
try:
future = transfer_manager.upload(local_file_path, BUCKET_NAME, key_name)
future.result() # Wait for the transfer to complete
print(f"Successfully uploaded {key_name}")
except Exception as e:
print(f"Upload failed: {e}")
# --- Example: Download a file ---
download_path = 'downloaded_file.txt'
print(f"Downloading {BUCKET_NAME}/{key_name} to {download_path}...")
try:
future = transfer_manager.download(BUCKET_NAME, key_name, download_path)
future.result() # Wait for the transfer to complete
print(f"Successfully downloaded {key_name} to {download_path}")
except Exception as e:
print(f"Download failed: {e}")
# Clean up local files (optional)
os.remove(local_file_path)
os.remove(download_path)
# You can also close the transfer manager (optional)
transfer_manager.shutdown()
Upgrade
Version history
2.16.2latest on PyPI · released Apr 14, 2026
Audit
Dependencies
ibm-cos-sdkrequiredProvides the IBM COS client and exposes the TransferManager for direct use. This package is typically a transitive dependency of `ibm-cos-sdk`.
s3transferrequiredThis library is a fork and extension of the upstream `s3transfer` library from `boto3`.