All Products
Search
Document Center

Lindorm:Gunakan API Amazon S3 untuk bahasa non-Java dalam mengembangkan aplikasi

Last Updated:Mar 29, 2026

LindormTable mendukung protokol Amazon S3, sehingga Anda dapat menghubungkannya menggunakan SDK apa pun yang kompatibel dengan S3—tanpa memerlukan pustaka klien khusus Lindorm. Topik ini menjelaskan cara menghubungkan dan menjalankan operasi dasar menggunakan AWS SDK for Go dan boto3 untuk Python.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Memperoleh alamat endpoint S3 Compatibility Address dari tab Wide Table Engine di Konsol Lindorm. Untuk detailnya, lihat Lihat endpoint.View connection addresses

  • Menambahkan alamat IP klien Anda ke daftar putih instans Lindorm Anda. Untuk detailnya, lihat Konfigurasi daftar putih.

  • Menyimpan ID AccessKey dan Rahasia AccessKey Anda sebagai variabel lingkungan:

    export ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id>
    export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>

Hubungkan menggunakan Go

Instal SDK

go get github.com/aws/aws-sdk-go

Konfigurasi klien

Tiga parameter memerlukan nilai selain nilai default untuk LindormTable:

ParameterNilaiAlasan
Region"lindorm"Diperlukan oleh SDK; tidak digunakan untuk routing oleh LindormTable
S3ForcePathStyletrueLindormTable mewajibkan pengalamatan gaya path
EndpointS3 Compatibility Address dari Konsol LindormMengarahkan permintaan ke instans LindormTable Anda
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 (
    // Ganti dengan S3 Compatibility Address dari tab Wide Table Engine di Konsol Lindorm.
    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"),  // Diperlukan oleh SDK; tidak digunakan untuk routing oleh LindormTable
        Endpoint:         aws.String(s3endpoint),
        S3ForcePathStyle: aws.Bool(true),         // LindormTable mewajibkan pengalamatan gaya path
    }

    sess, err := session.NewSession(conf)
    if err != nil {
        log.Fatal("Gagal membuat session:", err)
    }
    svc := s3.New(sess)

Daftar semua bucket

    input := &s3.ListBucketsInput{}
    result, err := svc.ListBuckets(input)
    if err != nil {
        log.Fatal("Gagal menampilkan daftar bucket:", err)
    }
    println(result.String())

Buat bucket

    bucket := "testbucketgo"

    out, err := svc.CreateBucket(&s3.CreateBucketInput{Bucket: &bucket})
    log.Println(out)
    if err != nil {
        log.Fatal("Gagal membuat bucket:", err)
    }

    if err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{Bucket: &bucket}); err != nil {
        log.Fatalf("Gagal menunggu bucket %s tersedia: %s\n", bucket, err)
    }

Tulis objek

    key := "testObjectGo"

    _, err = svc.PutObject(&s3.PutObjectInput{
        Body:   strings.NewReader("Hello World!"),
        Bucket: &bucket,
        Key:    &key,
    })
    if err != nil {
        log.Fatalf("Gagal mengunggah objek ke %s/%s: %s\n", bucket, key, err)
    }
}

Hubungkan menggunakan Python

Instal SDK

pip install boto3

Konfigurasi klien

Pengaturan addressing_style: 'path' mengaktifkan pengalamatan gaya path, yang diwajibkan oleh LindormTable.

import os
import boto3
from botocore.client import Config

# Ganti dengan S3 Compatibility Address dari tab Wide Table Engine di Konsol Lindorm.
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 mewajibkan pengalamatan gaya path
)

Daftar semua bucket

buckets = s3client.list_buckets()
for bucket in buckets['Buckets']:
    print(bucket["Name"])

Tanggapan yang berhasil akan mencetak nama bucket, satu per baris:

testbucketpython

Buat bucket

s3client.create_bucket(Bucket="testbucketpython")

Unggah objek

s3client.upload_file("demo.py", "testbucketpython", "demo.py")

Unduh objek

s3client.download_file('testbucketpython', 'demo.py', 'demo.py.download')

Langkah berikutnya

  • Untuk mengeksplorasi lebih banyak operasi kompatibel S3 yang didukung oleh LindormTable, lihat dokumentasi AWS SDK for Go dan dokumentasi boto3.

  • Untuk mengelola kontrol akses dan memantau penggunaan, lihat Konsol Lindorm.