IT・ビッグデータ徒然ブログ

関西でインフラ、データ基盤系のエンジニアになりたい

Lambdaで署名付きURLを生成する方法(2018年3月)

以前からちょくちょく署名付きURLを作成していたのですが、それを久々に使ったところ、
なぜかエラーがでてたので、今の時点で使えるようにアップデートしました。

同じ情報はググればいっぱい出てくるのですが、どこも中途半端だったり、わかりにくかったりするので、
ここではURLが生成されるならよいという仕様で行きます。

環境

コード

#下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)   

    

注意点

  • 冒頭の決まり文句的なものが入っているか
  • インデントがきちんとされているか(カッコとセミコロンの後は特に注意)

うまくいかなかったらコメントくださいな。