Este tópico descreve como usar o SDK do Amazon S3 em linguagens que não sejam Java, como Go ou Python, para se conectar e usar o LindormTable pelo protocolo Amazon S3, com exemplos correspondentes.
Pré-requisitos
Obtenha o endereço de compatibilidade S3 do mecanismo LindormTable do Lindorm. Para mais informações, consulte Visualizar endpoints. O endereço de compatibilidade S3 corresponde ao endpoint de VPC da instância do Lindorm. Encontre esse endpoint na página Endpoints, na aba LindormTable, na seção S3 Compatibility Address. O formato do endpoint é
ld-bp<instance ID>:9053. O nome de usuário e a senha padrão sãoroot.Adicione o endereço IP do cliente à lista de permissões da instância do Lindorm. Para mais detalhes, consulte Configurar uma lista de permissões.
Procedimento
Use o SDK do Amazon S3 para Go para se conectar e usar o LindormTable
-
Instale o SDK do Amazon S3 para Go.
go get github.com/aws/aws-sdk-go -
Conecte-se e use o LindormTable pelo SDK do Amazon S3 para Go.
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" // The S3 compatibility address for the LindormTable 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) // Create a connection. svc := s3.New(sess) // List all buckets. input := &s3.ListBucketsInput{} result, err := svc.ListBuckets(input) if err != nil { panic(err.Error()) } println(result.String()) bucket := "testbucketgo" key := "testObjectGo" // Create a bucket. out, err := svc.CreateBucket(&s3.CreateBucketInput{Bucket: &bucket}) log.Println(out) if err != nil { log.Println("Failed to create bucket", err) return } if err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{Bucket: &bucket}); err != nil { log.Printf("Failed to wait for bucket to exist %s, %s\n", bucket, err) return } // Upload an object. _, err = svc.PutObject(&s3.PutObjectInput{ Body: strings.NewReader("Hello World!"), Bucket: &bucket, Key: &key, }) if err != nil { log.Printf("Failed to upload data to %s/%s, %s\n", bucket, key, err) return } }NotaSubstitua os campos AK e SK no código de exemplo pelo AccessKey ID e AccessKey secret usados para se conectar ao LindormTable. Recomendamos configurar o AccessKey ID e o AccessKey secret como variáveis de ambiente ou especificá-los no arquivo de configuração, em vez de codificá-los diretamente no código-fonte.
Use o SDK do Amazon S3 para Python para se conectar e usar o LindormTable
-
Instale o SDK do Amazon S3 para Python.
pip install boto3 -
Conecte-se e use o LindormTable pelo SDK do Amazon S3 para Python.
import boto3 from botocore.client import Config s3endpoint = 'http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9053' # The S3 compatibility address for the LindormTable engine. # Create a connection. s3client = boto3.client( 's3', aws_access_key_id="AK", aws_secret_access_key="SK", endpoint_url = s3endpoint, config=Config(s3={'addressing_style': 'path'}) ) # Create a bucket. s3client.create_bucket(Bucket="testbucketpython") # List buckets. buckets = s3client.list_buckets() # Print all buckets. for bucket in buckets['Buckets']: print(bucket["Name"]) # Upload an object. response = s3client.upload_file("demo.py", "testbucketpython", "demo.py") # Download an object. s3client.download_file('testbucketpython', 'demo.py', 'demo.py.download')NotaSubstitua os campos AK e SK no código de exemplo pelo AccessKey ID e AccessKey secret usados para se conectar ao LindormTable. Recomendamos configurar o AccessKey ID e o AccessKey secret como variáveis de ambiente ou especificá-los no arquivo de configuração, em vez de codificá-los diretamente no código-fonte.