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).
- Run the following
POSTrequest in your terminal, replacing[TOKEN VALUE]with your personal token:
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"}'| Key | Description |
|---|---|
name | Friendly identifier for the credential. |
capabilities | List of permissions (e.g., readFiles for GET, writeFiles for PUT). |
buckets | Optional. Restricts access to only the listed buckets. |
expiration_date | Expiration date in UTC ISO 8601 format. |
- From the response, save the values of
access_keyandsecret_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 boto3s3 = 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 bucketresponse = 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.
- Install the
s3cmdpackage and make sure it’s in your PATH. - Run
s3cmd --configureand 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.
- Press
yto test access. If successful, you’ll see:Success. Your access key and secret key worked fine :-).
Common commands
| Command | Description |
|---|---|
s3cmd ls | Lists all buckets in the account. |
s3cmd put file.png s3://my-bucket/ | Uploads an object. |
s3cmd get s3://my-bucket/file.png | Downloads an object. |
s3cmd del s3://my-bucket/file.png | Deletes an object. |