2014-10-13 03:22:07 +02:00
|
|
|
#!/usr/local/bin/python
|
|
|
|
|
|
|
|
import boto
|
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
|
|
|
|
|
|
|
|
access_key = os.getenv("AWS_ACCESS_KEY")
|
|
|
|
access_secret = os.getenv("AWS_SECRET_KEY")
|
|
|
|
cloudfront_dist = os.getenv("AWS_CF_DISTRIBUTION_ID")
|
|
|
|
bucket = os.getenv("AWS_S3_BUCKET")
|
|
|
|
|
|
|
|
if access_key == "" or access_key is None:
|
|
|
|
print "Please set AWS_ACCESS_KEY env variable."
|
|
|
|
sys.exit(1)
|
|
|
|
elif access_secret == "" or access_secret is None:
|
|
|
|
print "Please set AWS_SECRET_KEY env variable."
|
|
|
|
sys.exit(1)
|
|
|
|
elif cloudfront_dist == "" or cloudfront_dist is None:
|
|
|
|
print "Please set AWS_CF_DISTRIBUTION_ID env variable."
|
|
|
|
sys.exit(1)
|
|
|
|
elif bucket == "" or bucket is None:
|
|
|
|
print "Please set AWS_S3_BUCKET env variable."
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
# get the paths from s3
|
|
|
|
s3_conn = boto.connect_s3(access_key, access_secret)
|
|
|
|
docs = s3_conn.get_bucket(bucket)
|
|
|
|
items = []
|
|
|
|
|
|
|
|
for key in docs.list():
|
2015-06-06 21:11:41 +02:00
|
|
|
index_file = "/index.html"
|
|
|
|
if key.name.endswith((index_file)):
|
|
|
|
# append the file without the postfix as well
|
|
|
|
items.append(key.name.replace(index_file, ""))
|
|
|
|
items.append(key.name.replace(index_file, "/"))
|
2014-10-13 03:22:07 +02:00
|
|
|
items.append(key.name)
|
|
|
|
|
|
|
|
cf_conn = boto.connect_cloudfront(access_key, access_secret)
|
|
|
|
inval_req = cf_conn.create_invalidation_request(cloudfront_dist, items)
|
|
|
|
|
2015-06-06 21:11:41 +02:00
|
|
|
print "Invalidating these files: "
|
|
|
|
print items
|
|
|
|
|
2014-10-13 03:22:07 +02:00
|
|
|
print inval_req
|
2015-06-06 21:11:41 +02:00
|
|
|
sys.exit(0)
|