jammit-s3 icon indicating copy to clipboard operation
jammit-s3 copied to clipboard

No support for staging environment

Open gauravgupta123 opened this issue 14 years ago • 4 comments

A single assets.yml stores the configuration keys for the plugin, irrespective of the environment. This creates problems when the app is deployed to a staging environment, since it causes files to be replaced in the same S3 bucket used by the production environment.

Infact, I would like to turn Cloudfront off on staging and get the files from my own server, or directly from S3 (without the CDN layer)

gauravgupta123 avatar May 19 '11 09:05 gauravgupta123

+1 we can't use jammit-s3 right now because we have a heroku staging, heroku testing and heroku development server.

dhiemstra avatar Aug 19 '11 11:08 dhiemstra

I workaround this by doing this:

s3_bucket: <%= "bucket_#{ENV['STAGE']}" %>

then

$ STAGE=staging bundle exec jammit-s3

miloops avatar Oct 04 '11 19:10 miloops

Actually Jammit itself can handle multiple stage settings: https://github.com/documentcloud/jammit/blob/master/lib/jammit.rb#L74

Simply wrap stage specific settings using stage name in assets.yml:

embed_assets: off
compress_assets: on

production:
  s3_bucket: production-assets
  s3_access_key_id: PRODUCTION KEY
  s3_secret_access_key: SecretProductionAccessKey

staging:
  s3_bucket: staging-assets
  s3_access_key_id: STAGING KEY
  s3_secret_access_key: SecretStagingAccessKey

...

Don't forget to set the environment when calling Jammit S3

$ RAILS_ENV=staging bundle exec jammit-s3

Hope that helps.

iltempo avatar Dec 13 '11 00:12 iltempo

That definitely did help me. I was trying to use a separate assets_staging.yml file and it wasn't working out for me -- but these namespaces did the trick. Thanks @iltempo.

Xeus avatar Jan 15 '14 05:01 Xeus