Copy to S3
aws s3 cp build/index.html s3://mybucket/index.html
To copy multiple HTML files:
aws s3 cp build/ s3://mybucket/ --exclude '*' --include '*.html'
The reason --exclude
comes before --include
is because all files are included by default.
If you want to have multiple includes:
aws s3 cp build/ s3://mybucket/ --exclude '*' --include '*.html' --include '*.js'
There’s also the --recursive
option to match files in subdirectories.
The next step is to invalidate the files from the CloudFront edge caches.
Invalidate CloudFront
To invalidate a single file:
aws cloudfront create-invalidation --distribution-id $CDN_DISTRIBUTION_ID --paths '/index.html'
To invalidate multiple HTML files using the *
wildcard:
aws cloudfront create-invalidation --distribution-id $CDN_DISTRIBUTION_ID --paths '/*'
When using the *
wildcard character, make sure to wrap the path with quotes ('
or "
) or else shell expansion will occur.