はじめに
今回は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 の設定をする。
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まとめ