LindormTable supports the Amazon S3 protocol, so you can connect to it using any S3-compatible SDK — no Lindorm-specific client library required. This topic shows how to connect and run basic operations using the AWS SDK for Go and boto3 for Python.
Prerequisites
Before you begin, ensure that you have:
The S3 Compatibility Address endpoint from the Wide Table Engine tab in the Lindorm console. For details, see View endpoints.

Your client IP address added to the whitelist of your Lindorm instance. For details, see Configure whitelists.
Your AccessKey ID and AccessKey secret stored as environment variables:
export ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>
Connect using Go
Install the SDK
go get github.com/aws/aws-sdk-goConfigure the client
Three parameters require non-default values for LindormTable:
| Parameter | Value | Reason |
|---|---|---|
Region | "lindorm" | Required by the SDK; not used for routing by LindormTable |
S3ForcePathStyle | true | LindormTable requires path-style addressing |
Endpoint | S3 Compatibility Address from the Lindorm console | Routes requests to your LindormTable instance |
package main
import (
"log"
"os"
"strings"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
const (
// Replace with the S3 Compatibility Address from the Wide Table Engine tab in the Lindorm console.
s3endpoint = "http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9053"
)
func main() {
conf := &aws.Config{
Credentials: credentials.NewStaticCredentials(
os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), // AccessKey ID
os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), // AccessKey secret
"",
),
Region: aws.String("lindorm"), // Required by the SDK; not used for routing by LindormTable
Endpoint: aws.String(s3endpoint),
S3ForcePathStyle: aws.Bool(true), // LindormTable requires path-style addressing
}
sess, err := session.NewSession(conf)
if err != nil {
log.Fatal("Failed to create session:", err)
}
svc := s3.New(sess)List all buckets
input := &s3.ListBucketsInput{}
result, err := svc.ListBuckets(input)
if err != nil {
log.Fatal("Failed to list buckets:", err)
}
println(result.String())Create a bucket
bucket := "testbucketgo"
out, err := svc.CreateBucket(&s3.CreateBucketInput{Bucket: &bucket})
log.Println(out)
if err != nil {
log.Fatal("Failed to create bucket:", err)
}
if err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{Bucket: &bucket}); err != nil {
log.Fatalf("Failed to wait for bucket %s to exist: %s\n", bucket, err)
}Write an object
key := "testObjectGo"
_, err = svc.PutObject(&s3.PutObjectInput{
Body: strings.NewReader("Hello World!"),
Bucket: &bucket,
Key: &key,
})
if err != nil {
log.Fatalf("Failed to upload object to %s/%s: %s\n", bucket, key, err)
}
}Connect using Python
Install the SDK
pip install boto3Configure the client
The addressing_style: 'path' setting enables path-style addressing, which LindormTable requires.
import os
import boto3
from botocore.client import Config
# Replace with the S3 Compatibility Address from the Wide Table Engine tab in the Lindorm console.
s3endpoint = 'http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9053'
s3client = boto3.client(
's3',
aws_access_key_id=os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_ID"), # AccessKey ID
aws_secret_access_key=os.environ.get("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), # AccessKey secret
endpoint_url=s3endpoint,
config=Config(s3={'addressing_style': 'path'}) # LindormTable requires path-style addressing
)List all buckets
buckets = s3client.list_buckets()
for bucket in buckets['Buckets']:
print(bucket["Name"])A successful response prints bucket names, one per line:
testbucketpythonCreate a bucket
s3client.create_bucket(Bucket="testbucketpython")Upload an object
s3client.upload_file("demo.py", "testbucketpython", "demo.py")Download an object
s3client.download_file('testbucketpython', 'demo.py', 'demo.py.download')What's next
To explore more S3-compatible operations supported by LindormTable, refer to the AWS SDK for Go documentation and the boto3 documentation.
To manage access control and monitor usage, see the Lindorm console.