# middleman-aws-deploy **Repository Path**: mirrors_basho/middleman-aws-deploy ## Basic Information - **Project Name**: middleman-aws-deploy - **Description**: S3+Cloudfront deployment for Middleman - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Middleman AWS Deploy Deploys build files to S3 at the end of the Middleman build toolchain, and/or invalidates Cloudfront. In your `config.rb` file, add. ``` configure :build do # ... if ENV.include?('DEPLOY') activate :s3_deploy do |s3| s3.access_key_id = ENV['AWS_ACCESS_KEY_ID'] s3.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] s3.bucket = ENV['AWS_S3_BUCKET'] end activate :invalidate_cloudfront do |cf| cf.access_key_id = ENV['AWS_ACCESS_KEY_ID'] cf.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY'] cf.distribution_id = ENV['AWS_CLOUDFRONT_DIST_ID'] end end end ``` With valid AWS creds, an s3 bucket, and cloudfront distribution id, you can deploy with the env var DEPLOY as a trigger (you can use whichever kind of trigger you like): ``` DEPLOY=true middleman build ``` ### S3 Deployment Note The S3 deployer will check local file's md5 hash against the remote s3 etag. If they are the same, it will not upload the identical file. However, if you have `:cachebuster` set to active the hashes will always end up different on every build, triggering an upload. There's little such danger however for assets (css, images, etc).