Cette rubrique explique comment utiliser le SDK Amazon S3 pour un langage autre que Java, tel que Go ou Python, afin de se connecter à LindormTable et d'utiliser ce service via le protocole Amazon S3. Des exemples correspondants sont également fournis.
Prérequis
Vous avez obtenu l'adresse de compatibilité S3 du moteur Lindorm LindormTable. Pour plus d'informations, consultez la section View endpoints. L'adresse de compatibilité S3 correspond à l'endpoint VPC de l'instance Lindorm. Vous pouvez trouver cet endpoint sur la page Endpoints, dans l'onglet LindormTable, sous la section S3 Compatibility Address. L'endpoint est au format
ld-bp<instance ID>:9053. Le nom d'utilisateur et le mot de passe par défaut sont tous deuxroot.Ajoutez l'adresse IP du client à la liste d'autorisation de l'instance Lindorm. Pour plus d'informations, consultez la section Configure a whitelist.
Procédure
Utiliser le SDK Amazon S3 pour Go pour se connecter à LindormTable et l'utiliser
-
Installez le SDK Amazon S3 pour Go.
go get github.com/aws/aws-sdk-go -
Utilisez le SDK Amazon S3 pour Go pour vous connecter à LindormTable et l'utiliser.
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 } }RemarqueRemplacez les champs AK et SK dans l'exemple de code par l'AccessKey ID et l'AccessKey secret que vous utilisez réellement pour vous connecter à LindormTable. Nous vous recommandons de configurer l'AccessKey ID et l'AccessKey secret en tant que variables d'environnement ou de les spécifier dans le fichier de configuration plutôt que de les coder en dur.
Utiliser le SDK Amazon S3 pour Python pour se connecter à LindormTable et l'utiliser
-
Installez le SDK Amazon S3 pour Python.
pip install boto3 -
Utilisez le SDK Amazon S3 pour Python pour vous connecter à LindormTable et l'utiliser.
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')RemarqueRemplacez les champs AK et SK dans l'exemple de code par l'AccessKey ID et l'AccessKey secret que vous utilisez réellement pour vous connecter à LindormTable. Nous vous recommandons de configurer l'AccessKey ID et l'AccessKey secret en tant que variables d'environnement ou de les spécifier dans le fichier de configuration plutôt que de les coder en dur.