Connect API
Connect to S3Box with the S3 API
Use these values with any tool or library that supports Amazon S3.
Connection values
Endpoint
https://s3.th-ubn-1.avesta.co.th
Region
default
Signature
AWS Signature v4
Addressing style
path-style
Get an access key
- Sign in to the S3 Console and click Create S3 Credentials (account owner) — the Secret Key is shown once
- The endpoint and current Access Key are under Settings → S3 connection
- Give each app or person its own sub-user key (Sub Users → ⋯ → Access Keys)
- If a secret leaks or is lost, click Rotate Secret Key and update every tool — the old key stops working immediately
Connection examples
Replace <ACCESS_KEY>, <SECRET_KEY> and <BUCKET_NAME> with your values. Never put keys in published code — read them from environment variables.
aws configure set aws_access_key_id <ACCESS_KEY> aws configure set aws_secret_access_key <SECRET_KEY> aws configure set default.region default aws configure set default.s3.addressing_style path aws configure set default.request_checksum_calculation when_required aws configure set default.response_checksum_validation when_required aws --endpoint-url https://s3.th-ubn-1.avesta.co.th s3 ls aws --endpoint-url https://s3.th-ubn-1.avesta.co.th s3 mb s3://<BUCKET_NAME> aws --endpoint-url https://s3.th-ubn-1.avesta.co.th s3 cp backup.zip s3://<BUCKET_NAME>/ aws --endpoint-url https://s3.th-ubn-1.avesta.co.th s3 sync ./data s3://<BUCKET_NAME>/data/
import os
import boto3
from botocore.config import Config
s3 = boto3.client(
"s3",
endpoint_url="https://s3.th-ubn-1.avesta.co.th",
region_name="default",
aws_access_key_id=os.environ["S3_ACCESS_KEY"],
aws_secret_access_key=os.environ["S3_SECRET_KEY"],
config=Config(
signature_version="s3v4",
s3={"addressing_style": "path"},
request_checksum_calculation="when_required",
response_checksum_validation="when_required",
),
)
s3.upload_file("backup.zip", "<BUCKET_NAME>", "backup.zip")
for b in s3.list_buckets()["Buckets"]:
print(b["Name"])// npm install @aws-sdk/client-s3
import { readFile } from "node:fs/promises";
import { S3Client, ListBucketsCommand, PutObjectCommand } from "@aws-sdk/client-s3";
const s3 = new S3Client({
endpoint: "https://s3.th-ubn-1.avesta.co.th",
region: "default",
forcePathStyle: true,
requestChecksumCalculation: "WHEN_REQUIRED",
responseChecksumValidation: "WHEN_REQUIRED",
credentials: {
accessKeyId: process.env.S3_ACCESS_KEY,
secretAccessKey: process.env.S3_SECRET_KEY,
},
});
await s3.send(new PutObjectCommand({
Bucket: "<BUCKET_NAME>",
Key: "hello.txt",
Body: await readFile("hello.txt"),
}));
const { Buckets } = await s3.send(new ListBucketsCommand({}));
console.log(Buckets.map((b) => b.Name));# ~/.config/rclone/rclone.conf [s3box] type = s3 provider = Ceph access_key_id = <ACCESS_KEY> secret_access_key = <SECRET_KEY> endpoint = https://s3.th-ubn-1.avesta.co.th region = default force_path_style = true # ใช้งาน / usage rclone lsd s3box: rclone copy ./data s3box:<BUCKET_NAME>/data
Account type : S3 Compatible Storage REST Endpoint: https://s3.th-ubn-1.avesta.co.th Access Key ID: <ACCESS_KEY> Secret Key : <SECRET_KEY> Signature : AWS Signature v4 Region : default Bucket : <BUCKET_NAME> [x] Use secure transfer (SSL/TLS)
1. Backup Infrastructure -> Add Backup Repository 2. Object Storage -> S3 Compatible 3. Service point : https://s3.th-ubn-1.avesta.co.th Region : default 4. Add credentials: Access Key / Secret Key 5. Bucket: <BUCKET_NAME> -> choose or create a folder 6. Set retention -> Finish -> start the backup job
Repository type : Amazon S3 Compatible / S3-compatible storage Endpoint : https://s3.th-ubn-1.avesta.co.th Bucket : <BUCKET_NAME> Access/Secret : <ACCESS_KEY> / <SECRET_KEY> Signature : AWS Signature v4 Region : default
Recent AWS SDK/CLI versions send new checksums on every request, so the examples set them to "when required" for reliable use with S3-compatible storage (the Python example needs boto3 1.36 or newer; on older versions remove the two checksum lines).
Good to know
- The Secret Key is shown once and cannot be viewed again
- Always use HTTPS (the endpoint is https)
- For data that must never be changed or deleted, enable Object Lock when creating the bucket