プライベートなS3コンテンツにアクセスしたい!
→署名付きURLを発行する!
svc := s3.New(session.New(), aws.NewConfig().WithRegion("ap-northeast-1"))
req, _ := svc.GetObjectRequest(&s3.GetObjectInput{
Bucket: aws.String("bucket_name"),
Key: aws.String("file_path"),
})
url, err := req.Presign(time.Hour * 2) // 有効期限を指定して署名付きURLを取得
if err != nil {
fmt.Println("Failed to sign request", err)
}
fmt.Println(url)
コマンドでも取得できるので、確認用に
$ aws s3 presign s3://bucket_name/file_path --expires-in 30
こう使ってます
- DynamoDBにバケット名とファイルパスを保存しておく
- バケット名とファイルパスを指定して、S3から署名付きURLを取得
- ファイルが見れる!