LoginSignup
0
0

More than 1 year has passed since last update.

AWS日記④ (S3)

Last updated at Posted at 2020-05-12

はじめに

今回はS3を利用して簡易な画像掲示板を作成します。

準備

S3 バケットを作成し、パブリックアクセス設定にします。
DynamoDBのテーブルを作成します。
[Lambda , API Gatewayの準備をします。]
(https://qiita.com/tanaka_takurou/items/3f93295de6cff060ec09)

[参考資料]
S3 バケットを作成する方法
S3 バケットのパブリックアクセス設定を編集する方法
S3パブリックアクセス設定を試してみる

WEBページ・API作成

GO言語のAWS Lambda関数ハンドラー aws-lambda-go を使用してHTMLやJSONを返す処理を作成します。
また、DynamoDB と S3 を使用するため aws-sdk-go を利用します。

[参考資料]
AWS SDK for Go API Reference
AWS SDK for Go S3バケット基本操作

アップロードする処理に ACL と ContentType の設定をする。

main.go
        sess, err := session.NewSession(&aws.Config{
                Region: aws.String(bucketRegion)},
        )
        if err != nil {
                log.Print(err)
                return err
        }
        uploader := s3manager.NewUploader(sess)
        _, err = uploader.Upload(&s3manager.UploadInput{
                ACL: aws.String("public-read"),
                Bucket: aws.String(bucketName),
                Key: aws.String(bucketPath + "/" + filename),
                Body: bytes.NewReader(data),
                ContentType: aws.String(contentType),
        })

今回は、APIへリクエストする際、画像データをbase64変換し、S3へアップロードする直前でデコードしました。
作成したLambda 関数、テンプレート

終わりに

今回は、S3 をパブリックアクセス設定で利用したので、特に難しい部分はありませんでした。
今後、目的によって設定を変えて利用していきます。

[参考資料]
Amazon S3
【AWS】S3まとめ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0