-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Blocks: #159
What
Currently we are serving our assets directly from an Amazon S3 bucket, not through a CDN. We signed up for the Free Tier service on the 10th of April, 2016, and will start being charged one year after (i.e. soon!).
In addition to this, going forward, we need to prioritise serving images quickly, revealing select image URLs securely in an API (signed), as well as being able to manipulate images easily.
Cloudinary is "a cloud-based service that provides an end-to-end image management solution including uploads, storage, manipulations, optimizations and delivery." In short, it should make our lives easier, and the free package does the job for us + does NOT expire. Thus, we should move our image management implementation over to Cloudinary. And ideally (but not necessarily) do it before the 10th of April.
How
There are several, detailed resources stepping through how to integrate Cloudinary with Rails, including how to migrate existing images over from another source:
https://devcenter.heroku.com/articles/cloudinary#using-with-ruby-on-rails
http://cloudinary.com/documentation/rails_integration#getting_started_guide
We may have to move over from using the current Paperclip gem to CarrierWave as this is more supported by Cloudinary. But if we want an intermediate step to migrating, there is a limited Paperclip-cloudinary gem we can look into using first.
- Set up a DML cloudinary account and record any auth details in our secure passwords spreadsheet (ask the team to add your email if needed). NB: We currently do not enable S3 locally, which makes it hard to test in development mode before staging / production. We might want to change this, so in local development envs we have the same asset solution but pointing to another local Cloudinary instance. So we may need to set up 3 accounts, local / staging / production
- Switch from Paperclip to Carrierwave as our image upload tool
- Integrate Cloudinary with our solution following the steps in the docs linked above, moving away from using S3. Ensure local, staging and production envs use the appropriate cloudinary account.
- Regression test all the things!