Skip to content

Instantly share code, notes, and snippets.

@tkoki
Last active December 22, 2015 19:09
Show Gist options
  • Save tkoki/6518144 to your computer and use it in GitHub Desktop.
Save tkoki/6518144 to your computer and use it in GitHub Desktop.
botoを使ってCloudFrontのsigned URLを発行する。
import boto, time
'''
@param[in] aws_access_key_id AWSアカウントのアクセスキーID
@param[in] aws_secret_access_key AWSアカウントのシークレットキー
@param[in] keypair_id CloudFrontキーペアID
@param[in] keypair_file CloudFrontキーペアファイル
@param[in] cf_distribution_id CloudFrontディストリビューションID
@param[in] s3_object_name 公開したいS3オブジェクトのキー
@param[in] expires_in_seconds CloudFrontで公開する期間を秒で指定
@retval 署名されたURL
'''
def create_cf_signed_url(aws_access_key_id,
aws_secret_access_key,
keypair_id, keypair_file,
cf_distribution_id,
s3_object_name,
expires_in_seconds):
conn = boto.connect_cloudfront(aws_access_key_id, aws_secret_access_key)
distro_config = conn.get_distribution_config(cf_distribution_id)
distro_info = conn.get_distribution_info(cf_distribution_id)
distro = boto.cloudfront.distribution.Distribution(connection=conn,
config=distro_config,
domain_name=distro_info.domain_name,
id=cf_distribution_id,
last_modified_time=None,
status='Active')
url = 'http://' + distro.domain_name + '/' + s3_object_name
expire = time.time() + expires_in_seconds
return distro.create_signed_url(url=url,
keypair_id=keypair_id,
expire_time=long(expire),
private_key_file=keypair_file)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment