github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/aws-s3-folder-pp/python/aws-s3-folder.py (about) 1 import pulumi 2 import json 3 import os 4 import pulumi_aws as aws 5 6 # Create a bucket and expose a website index document 7 site_bucket = aws.s3.Bucket("siteBucket", website=aws.s3.BucketWebsiteArgs( 8 index_document="index.html", 9 )) 10 site_dir = "www" 11 # For each file in the directory, create an S3 object stored in `siteBucket` 12 files = [] 13 for range in [{"key": k, "value": v} for [k, v] in enumerate(os.listdir(site_dir))]: 14 files.append(aws.s3.BucketObject(f"files-{range['key']}", 15 bucket=site_bucket.id, 16 key=range["value"], 17 source=pulumi.FileAsset(f"{site_dir}/{range['value']}"), 18 content_type=range["value"])) 19 # set the MIME type of the file 20 # Set the access policy for the bucket so all objects are readable 21 bucket_policy = aws.s3.BucketPolicy("bucketPolicy", 22 bucket=site_bucket.id, 23 policy=site_bucket.id.apply(lambda id: json.dumps({ 24 "Version": "2012-10-17", 25 "Statement": [{ 26 "Effect": "Allow", 27 "Principal": "*", 28 "Action": ["s3:GetObject"], 29 "Resource": [f"arn:aws:s3:::{id}/*"], 30 }], 31 }))) 32 pulumi.export("bucketName", site_bucket.bucket) 33 pulumi.export("websiteUrl", site_bucket.website_endpoint)