Azion Object Storage is fully compatible with the S3 protocol. This allows you to manage your data using the ecosystem of tools, SDKs, and libraries you already know. This compatibility makes it easier to migrate from other cloud providers to Azion, leveraging our global network to reduce latency and eliminate Data Transfer Out (DTO) costs.

Access is provided through HMAC credentials (access key and secret key), which ensure security and granular control over operations.


1. Create access credentials (HMAC) via API

To use S3-compatible tools, you must generate a credential that defines the permission level (capabilities).

  1. Run the following POST request in your terminal, replacing [TOKEN VALUE] with your personal token:
Terminal window
curl --request POST \
--url https://api.azion.com/v4/workspace/storage/credentials \
--header 'Accept: application/json' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Content-Type: application/json' \
--data '{
"name": "Full Access Credential",
"capabilities": [
"listFiles",
"readFiles",
"writeFiles",
"deleteFiles",
"listAllBucketNames",
"listBuckets"
],
"buckets": [
"my-static-bucket"
],
"expiration_date": "2026-12-31T23:59:59Z"
}'
KeyDescription
nameFriendly identifier for the credential.
capabilitiesList of permissions (e.g., readFiles for GET, writeFiles for PUT).
bucketsOptional. Restricts access to only the listed buckets.
expiration_dateExpiration date in UTC ISO 8601 format.
  1. From the response, save the values of access_key and secret_key.

2. Global Connection Settings

To configure any tool, use the following default parameters:

  • Endpoint: s3.us-east-005.azionstorage.net.
  • Region: us-east-005.

3. Integration Examples

Using Python (Boto3)

Boto3 is the standard library for Python developers to interact with S3 storage.

import boto3
s3 = boto3.client(
"s3",
endpoint_url="https://s3.us-east-005.azionstorage.net",
aws_access_key_id="<YOUR_ACCESS_KEY>",
aws_secret_access_key="<YOUR_SECRET_KEY>",
region_name="us-east-005",
)
# Example: List objects in the bucket
response = s3.list_objects_v2(Bucket="my-static-bucket")
for obj in response.get("Contents", []):
print(f"Object found: {obj['Key']}")

Using s3cmd (CLI)

s3cmd is a command-line tool for managing S3 services.

  1. Install the s3cmd package and make sure it’s in your PATH.
  2. Run s3cmd --configure and follow the interactive prompt:
  • Access Key / Secret Key: Enter the keys generated in step 1.
  • Default Region: us-east.
  • S3 Endpoint: s3.us-east-005.azionstorage.net.
  • DNS template: %(bucket).s3.us-east-005.azionstorage.net.
  • Encryption password / GPG program path: Optional (GPG adds an extra layer of privacy).
  • Use HTTPS protocol: true.
  • HTTP Proxy server: Leave blank unless you use a proxy.
  1. Press y to test access. If successful, you’ll see: Success. Your access key and secret key worked fine :-).

Common commands

CommandDescription
s3cmd lsLists all buckets in the account.
s3cmd put file.png s3://my-bucket/Uploads an object.
s3cmd get s3://my-bucket/file.pngDownloads an object.
s3cmd del s3://my-bucket/file.pngDeletes an object.