全部产品
Search
文档中心

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

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menggunakan Amazon S3 SDK untuk bahasa non-Java seperti Go atau Python untuk terhubung dan menggunakan LindormTable berdasarkan protokol Amazon S3, serta menyediakan contoh yang relevan.

Prasyarat

  • Titik akhir yang sesuai dengan Alamat Kompatibilitas S3 pada tab Wide Table Engine di konsol Lindorm telah diperoleh. Untuk informasi lebih lanjut, lihat Lihat titik akhir.查看连接地址

  • Alamat IP klien Anda telah ditambahkan ke daftar putih instance Lindorm Anda. Untuk informasi lebih lanjut, lihat Konfigurasi daftar putih.

Prosedur

Menggunakan Amazon S3 SDK untuk Go untuk terhubung dan menggunakan LindormTable

  1. Instal Amazon S3 SDK untuk Go.

    go get github.com/aws/aws-sdk-go
  2. Gunakan Amazon S3 SDK untuk Go untuk terhubung dan menggunakan LindormTable.

    package main
    
    import (
     "log"
     "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 (
        s3endpoint = "http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9053" // Tentukan titik akhir yang sesuai dengan Alamat Kompatibilitas S3 pada tab Wide Table Engine.
    )
    
    func main() {
     conf := &aws.Config{
      Credentials:      credentials.NewStaticCredentials("AK", "SK", ""),
      Region:           aws.String("lindorm"),
      Endpoint:         aws.String(s3endpoint),
      S3ForcePathStyle: aws.Bool(true),
     }
    
     sess, err := session.NewSession(conf)
    
    // Membuat koneksi.
     svc := s3.New(sess)
    
    // Daftarkan semua bucket.
     input := &s3.ListBucketsInput{}
    
     result, err := svc.ListBuckets(input)
     if err != nil {
      panic(err.Error())
     }
     println(result.String())
    
     bucket := "testbucketgo"
     key := "testObjectGo"
    
    // Buat sebuah bucket.
     out, err := svc.CreateBucket(&s3.CreateBucketInput{Bucket: &bucket})
     log.Println(out)
     if err != nil {
      log.Println("Gagal membuat bucket", err)
      return
     }
    
     if err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{Bucket: &bucket}); err != nil {
      log.Printf("Gagal menunggu bucket ada %s, %s\n", bucket, err)
      return
     }
    
    // Tulis sebuah objek ke bucket.
     _, err = svc.PutObject(&s3.PutObjectInput{
      Body:   strings.NewReader("Hello World!"),
      Bucket: &bucket,
      Key:    &key,
     })
     if err != nil {
      log.Printf("Gagal mengunggah data ke %s/%s, %s\n", bucket, key, err)
      return
     }
    }
    Catatan

    Gantikan bidang AK dan SK dalam kode contoh dengan ID AccessKey dan Rahasia AccessKey yang sebenarnya digunakan untuk terhubung ke LindormTable. Kami sarankan Anda mengonfigurasi ID AccessKey dan Rahasia AccessKey sebagai variabel lingkungan atau tentukan mereka dalam file konfigurasi daripada melakukan hardcoding.

Menggunakan Amazon S3 SDK untuk Python untuk terhubung dan menggunakan LindormTable

  1. Instal Amazon S3 SDK untuk Python.

    pip install boto3
  2. Gunakan Amazon S3 SDK untuk Python untuk terhubung dan menggunakan LindormTable.

    import boto3
    from botocore.client import Config
    s3endpoint = 'http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9053' # Tentukan titik akhir yang sesuai dengan Alamat Kompatibilitas S3 pada tab Wide Table Engine.
     
    # Membuat koneksi.
    s3client = boto3.client(
        's3',
        aws_access_key_id="AK", 
        aws_secret_access_key="SK",
        endpoint_url = s3endpoint,
        config=Config(s3={'addressing_style': 'path'})
    )
    
    # Buat sebuah bucket. 
    s3client.create_bucket(Bucket="testbucketpython")
    
    # Daftarkan semua bucket.
    buckets = s3client.list_buckets()
    
    # Tampilkan semua bucket.
    for bucket in buckets['Buckets']:
        print(bucket["Name"])
    
    # Unggah sebuah objek.
    response = s3client.upload_file("demo.py", "testbucketpython", "demo.py")
    
    # Unduh objek tersebut.
    s3client.download_file('testbucketpython', 'demo.py', 'demo.py.download')
    Catatan

    Gantikan bidang AK dan SK dalam kode contoh dengan ID AccessKey dan Rahasia AccessKey yang sebenarnya digunakan untuk terhubung ke LindormTable. Kami sarankan Anda mengonfigurasi ID AccessKey dan Rahasia AccessKey sebagai variabel lingkungan atau tentukan mereka dalam file konfigurasi daripada melakukan hardcoding.