Each of these items is described in detail after the following list:
A Wasabi account with access to the Wasabi Management Console.
Your Access Key ID and Secret Access Key for API authentication that were generated in the Wasabi Console.
A regional service endpoint (for example, s3.us-east-1.wasabisys.com).
An API client:
AWS CLI
SDK (for example, boto3, AWS SDK for JavaScript, etc.)
HTTP client (for example, Postman, cURL)
Wasabi does not charge for egress or API requests, making it ideal for high-access workloads.
Create a Wasabi Account
Go to https://console.wasabi.com and sign up for a free trial or log in to your organization’s account.
Generate Access and Secret Keys
Log in to the Wasabi Console, then:
Click Access Keys in the Console navigation panel.
Create new access and secret keys or use existing keys.
Copy both keys to a safe place.
Choose Your Regional Service Endpoint
Refer to Service URLs for Wasabi’s Storage Regions.
Connect an API Client
Connect an API client using SDK or S3-compliant tools. Wasabi is S3-compatible, so you can use AWS SDKs and tools.
Using the Wasabi API Client (via HTTP)
You can use any HTTP client to interact with Wasabi using signed S3 requests.
Example: Upload with cURL
Requires pre-signed URL or AWS Signature v4 headers (generated using SDKs or tools like Postman, boto3, etc.)
curl -X PUT \
--upload-file ./myfile.txt \
"https://s3.us-west-1.wasabisys.com/my-wasabi-bucket/myfile.txt" \
-H "Authorization: AWS <ACCESS_KEY>:<SIGNATURE>" \
-H "x-amz-date: <ISO_TIMESTAMP>"
Because manually signing requests is complex, it’s easier to use SDKs or CLI unless you're automating or integrating at a low level.
Using AWS SDKs (Python with boto3)
Install boto3
pip install boto3
Example Python Script
import boto3
session = boto3.session.Session()
s3 = session.client(
service_name='s3',
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY',
endpoint_url='https://s3.us-west-1.wasabisys.com'
)
# Upload a file
s3.upload_file('localfile.txt', 'my-wasabi-bucket', 'remote/path/localfile.txt')
# List files
response = s3.list_objects_v2(Bucket='my-wasabi-bucket')
for obj in response.get('Contents', []):
print(obj['Key'])