すべてのプロダクト
Search
ドキュメントセンター

Lindorm:非 Java 言語向け Amazon S3 API によるアプリケーション開発

最終更新日:Jun 19, 2026

このトピックでは、Go や Python などの非 Java 言語向け Amazon S3 SDK を使用して、Amazon S3 プロトコルに基づいて LindormTable に接続し、使用する方法を、対応する例とともに説明します。

前提条件

  • Lindorm LindormTable エンジンの S3 互換性アドレスを取得していること。詳細については、「エンドポイントの確認」をご参照ください。S3 互換性アドレスは、Lindorm インスタンスの VPC エンドポイントです。エンドポイントは、[エンドポイント] ページの [LindormTable] タブの [S3互換性アドレス] セクションで確認できます。エンドポイントの形式は ld-bp<インスタンス ID>:9053 です。デフォルトのユーザー名とパスワードはいずれも root です。

  • Lindorm インスタンスのホワイトリストにクライアントの IP アドレスを追加していること。詳細については、「ホワイトリストの設定」をご参照ください。

操作手順

Amazon S3 SDK for Go による LindormTable への接続と使用

  1. Amazon S3 SDK for Go をインストールします。

    go get github.com/aws/aws-sdk-go
  2. Amazon S3 SDK for Go を使用して 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" // LindormTable エンジンの S3 互換性アドレス。
    )
    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)
    // 接続を作成します。
     svc := s3.New(sess)
    // すべてのバケットを一覧表示します。
     input := &s3.ListBucketsInput{}
     result, err := svc.ListBuckets(input)
     if err != nil {
      panic(err.Error())
     }
     println(result.String())
     bucket := "testbucketgo"
     key := "testObjectGo"
    // バケットを作成します。
     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
     }
    // オブジェクトをアップロードします。
     _, 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
     }
    }
    説明

    サンプルコードの AK フィールドと SK フィールドは、LindormTable への接続に実際に使用する AccessKey ID と AccessKey シークレットに置き換えてください。AccessKey ID と AccessKey シークレットは、ハードコーディングではなく、環境変数として設定するか、設定ファイルで指定することを推奨します。

Amazon S3 SDK for Python による LindormTable への接続と使用

  1. Amazon S3 SDK for Python をインストールします。

    pip install boto3
  2. Amazon S3 SDK for Python を使用して LindormTable に接続し、使用します。

    import boto3
    from botocore.client import Config
    s3endpoint = 'http://ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com:9053' # LindormTable エンジンの S3 互換性アドレス。
    # 接続を作成します。
    s3client = boto3.client(
        's3',
        aws_access_key_id="AK", 
        aws_secret_access_key="SK",
        endpoint_url = s3endpoint,
        config=Config(s3={'addressing_style': 'path'})
    )
    # バケットを作成します。
    s3client.create_bucket(Bucket="testbucketpython")
    # バケットを一覧表示します。
    buckets = s3client.list_buckets()
    # すべてのバケットを出力します。
    for bucket in buckets['Buckets']:
        print(bucket["Name"])
    # オブジェクトをアップロードします。
    response = s3client.upload_file("demo.py", "testbucketpython", "demo.py")
    # オブジェクトをダウンロードします。
    s3client.download_file('testbucketpython', 'demo.py', 'demo.py.download')
    説明

    サンプルコードの AK フィールドと SK フィールドは、LindormTable への接続に実際に使用する AccessKey ID と AccessKey シークレットに置き換えてください。AccessKey ID と AccessKey シークレットは、ハードコーディングではなく、環境変数として設定するか、設定ファイルで指定することを推奨します。