empowerhack / DrawMyLife-Service

API and Admin system for the Draw My Life initiative - Volunteers: check README and GitHub Projects to get started.
https://github.com/empowerhack/DrawMyLife-Service/projects
MIT License
13 stars 0 forks source link

Switch to Cloudinary for a fully-featured image service / CDN #163

Open krissy opened 7 years ago

krissy commented 7 years ago

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.

kevinpmcc commented 7 years ago

set up 3 cloudinary accounts. details are in passwords spreadsheet.

kevinpmcc commented 7 years ago

carrierwave and cloudinary added and working on local. some failing tests to fix.

krissy commented 7 years ago

That's great news @kevinpmcc! :clap: Feel free to push the branch up and open a pull request for 90% review even with specs pending. Never too early for feedback! Also feel free to push what you have to staging for some QA. If you merge into the staging branch it'll auto-deploy to drawmylife-staging.herokuapp.