Lambdaで署名付きURLを生成する方法(2018年3月)
以前からちょくちょく署名付きURLを作成していたのですが、それを久々に使ったところ、
なぜかエラーがでてたので、今の時点で使えるようにアップデートしました。
同じ情報はググればいっぱい出てくるのですが、どこも中途半端だったり、わかりにくかったりするので、
ここではURLが生成されるならよいという仕様で行きます。
環境
- Python 3.6
コード
#下2行は決まり文句的なもの import boto3 def lambda_handler(event, context): #BUCKET = '<バケット名>' #KEY = '<ファイル名(パス含む)>' BUCKET = 'hogehoge' KEY = 'foo/bar.jpg' s3 = boto3.client('s3') #URLを生成 #ExpiresInでURLの有効期限を設定 url = s3.generate_presigned_url( ClientMethod = 'get_object', Params = {'Bucket' : BUCKET, 'Key' : KEY}, ExpiresIn = 604800, HttpMethod = 'GET' ) #生成したURLを出力 print (url)
注意点
- 冒頭の決まり文句的なものが入っているか
- インデントがきちんとされているか(カッコとセミコロンの後は特に注意)
うまくいかなかったらコメントくださいな。