I was able to achieve this using the s3cmd tool. I wrote a sync script that syncs my static site using the --cache-control
parameter on the AWS client tool and then manually resets it and adds a couple of other headers for a few specific files:
cd /appropriatedirectory
# Delete current site
aws s3 rm s3://yourbucket --recursive --exclude 'logs/*'
# Upload new site, setting cache header to 1 month for all files
aws s3 sync . s3://yourbucket --exclude '.idea/*' --exclude '.git/*' --exclude '.gitignore' --cache-control max-age=2592000
# Overrides the cache headers for some file
python /pathToS3cmd/s3cmd modify --add-header="Cache-Control:no-cache,no-store,must-revalidate" s3://yourbucket/somefile.html
python /pathToS3cmd/s3cmd/s3cmd modify --add-header="Expires:0" s3://yourbucket/somefile.html
python /pathToS3cmd/s3cmd/s3cmd modify --add-header="Pragma:no-cache" s3://yourbucket/somefile.html