Topik ini menjelaskan cara menggunakan Amazon S3 SDK untuk bahasa non-Java seperti Go atau Python guna terhubung ke dan menggunakan LindormTable berdasarkan protokol Amazon S3, serta menyediakan contoh yang sesuai.
Prasyarat
-
Anda telah memperoleh alamat kompatibilitas S3 dari mesin Lindorm LindormTable. Untuk informasi selengkapnya, lihat View endpoints. Alamat kompatibilitas S3 merupakan endpoint VPC dari instans Lindorm. Anda dapat menemukan endpoint tersebut pada halaman Endpoints, di tab LindormTable, pada bagian S3 Compatibility Address. Format endpoint adalah
ld-bp<instance ID>:9053. Username dan password default keduanya adalahroot. -
Tambahkan alamat IP klien ke daftar putih instans Lindorm. Untuk informasi selengkapnya, lihat Configure a whitelist.
Prosedur
Gunakan Amazon S3 SDK untuk Go guna terhubung ke dan menggunakan LindormTable
Instal Amazon S3 SDK untuk Go.
go get github.com/aws/aws-sdk-go-
Gunakan Amazon S3 SDK untuk Go guna terhubung ke 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" // Alamat kompatibilitas S3 untuk mesin LindormTable. ) 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) // Buat koneksi. svc := s3.New(sess) // Daftar semua bucket. input := &s3.ListBucketsInput{} result, err := svc.ListBuckets(input) if err != nil { panic(err.Error()) } println(result.String()) bucket := "testbucketgo" key := "testObjectGo" // Buat 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 tersedia %s, %s\n", bucket, err) return } // Unggah objek. _, 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 } }CatatanGanti bidang AK dan SK dalam kode contoh dengan ID AccessKey dan Rahasia AccessKey yang benar-benar Anda gunakan untuk menghubungkan LindormTable. Kami menyarankan agar Anda mengonfigurasi ID AccessKey dan Rahasia AccessKey sebagai variabel lingkungan atau menentukannya dalam file konfigurasi, bukan melakukan hardcoding.
Gunakan Amazon S3 SDK untuk Python guna terhubung ke dan menggunakan LindormTable
Instal Amazon S3 SDK untuk Python.
pip install boto3-
Gunakan Amazon S3 SDK untuk Python guna terhubung ke dan menggunakan LindormTable.
import boto3 from botocore.client import Config s3endpoint = 'http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9053' # Alamat kompatibilitas S3 untuk mesin LindormTable. # Buat 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 bucket. s3client.create_bucket(Bucket="testbucketpython") # Daftar bucket. buckets = s3client.list_buckets() # Cetak semua bucket. for bucket in buckets['Buckets']: print(bucket["Name"]) # Unggah objek. response = s3client.upload_file("demo.py", "testbucketpython", "demo.py") # Unduh objek. s3client.download_file('testbucketpython', 'demo.py', 'demo.py.download')CatatanGanti bidang AK dan SK dalam kode contoh dengan ID AccessKey dan Rahasia AccessKey yang benar-benar Anda gunakan untuk menghubungkan LindormTable. Kami menyarankan agar Anda mengonfigurasi ID AccessKey dan Rahasia AccessKey sebagai variabel lingkungan atau menentukannya dalam file konfigurasi, bukan melakukan hardcoding.