[Go] S3 からファイルを 1 つ取得する (aws-sdk-go-v2)

作成日: 2022年08月07日

s3.Client 構造体の GetObject 関数を使用すると、任意のバケットからファイルを 1 つ取得することができます。

package main

import (
    "context"
    "fmt"
    "io/ioutil"

    "github.com/aws/aws-sdk-go-v2/aws"
    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/service/s3"
)

func main() {
    ctx := context.Background()

    cfg, err := config.LoadDefaultConfig(
        ctx,
        config.WithSharedConfigProfile("default"),
    )
    if err != nil {
        panic(err.Error())
    }

    s3Client := s3.NewFromConfig(cfg)

    response, err := s3Client.GetObject(ctx, &s3.GetObjectInput{
        Bucket: aws.String("dummy.s3.example.com"),
        Key:    aws.String("dummy_files/file1.txt"),
    })
    if err != nil {
        panic(err.Error())
    }

    defer response.Body.Close()

    responseBody, err := ioutil.ReadAll(response.Body)
    if err != nil {
        panic(err.Error())
    }

    fmt.Print(string(responseBody))
}
Go AWS