Quickstart
Get from zero to your first uploaded object in five minutes.
1. Create an account
Sign up at /signup. You will verify your email, optionally enter your VAT/UEN tax ID (required for TH and SG B2B tax-invoice rendering), and create your first bucket.
2. Generate an access key
From the customer console, go to Keys. Click "Generate access key". You will see a key pair like:
Access Key ID: BGSAKIA47KQ8M8YHUNQQ
Secret Access Key: 5XCh+RKx5xV4FRu3iqXmK0c7zM4M3z1L8XzNAAA1Copy the secret key immediately. We display it only once and store only an encrypted form on our side; you will not be able to recover it later. If you lose it, rotate it.
3. Configure your S3 endpoint
Use the endpoint matching the region of your bucket:
| Region | Endpoint |
|---|---|
| Bangkok (ap-southeast-1-bkk) | https://s3.bkk.bangmod.storage |
| Singapore (ap-southeast-1-sg) | https://s3.sg.bangmod.storage |
Path-style (https://endpoint/bucket/key) and virtual-hosted style (https://bucket.endpoint/key) are both supported.
4. Upload your first object
Python (boto3)
import boto3
s3 = boto3.client(
's3',
endpoint_url='https://s3.bkk.bangmod.storage',
aws_access_key_id='BGSAKIA…',
aws_secret_access_key='…',
region_name='ap-southeast-1-bkk',
)
s3.put_object(Bucket='my-bucket', Key='hello.txt', Body=b'Hello BangmodStorage')Go (aws-sdk-go-v2)
cfg, _ := config.LoadDefaultConfig(ctx,
config.WithRegion("ap-southeast-1-bkk"),
config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(
"BGSAKIA…", "…", "")),
)
client := s3.NewFromConfig(cfg, func(o *s3.Options) {
o.BaseEndpoint = aws.String("https://s3.bkk.bangmod.storage")
o.UsePathStyle = true
})
_, err := client.PutObject(ctx, &s3.PutObjectInput{
Bucket: aws.String("my-bucket"),
Key: aws.String("hello.txt"),
Body: strings.NewReader("Hello BangmodStorage"),
})JavaScript / Node (@aws-sdk/client-s3)
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3';
const s3 = new S3Client({
region: 'ap-southeast-1-bkk',
endpoint: 'https://s3.bkk.bangmod.storage',
credentials: { accessKeyId: 'BGSAKIA…', secretAccessKey: '…' },
forcePathStyle: true,
});
await s3.send(new PutObjectCommand({
Bucket: 'my-bucket', Key: 'hello.txt',
Body: 'Hello BangmodStorage',
}));AWS CLI
aws configure set aws_access_key_id BGSAKIA…
aws configure set aws_secret_access_key …
aws configure set region ap-southeast-1-bkk
echo "Hello BangmodStorage" > hello.txt
aws s3api put-object \
--endpoint-url https://s3.bkk.bangmod.storage \
--bucket my-bucket --key hello.txt --body hello.txts3cmd
s3cmd --configure
# Access key: BGSAKIA…
# Secret key: …
# S3 endpoint: s3.bkk.bangmod.storage
# DNS-style bucket: %(bucket)s.s3.bkk.bangmod.storage
# Use HTTPS: yes
s3cmd put hello.txt s3://my-bucket/hello.txtrclone
# In ~/.config/rclone/rclone.conf:
[bangmod]
type = s3
provider = Other
access_key_id = BGSAKIA…
secret_access_key = …
endpoint = https://s3.bkk.bangmod.storage
region = ap-southeast-1-bkk
rclone copy hello.txt bangmod:my-bucket/