I have a pretty simple ruby on rails (5.1.6) webapp, which is using carrierwave to upload images to store in google cloud. Currently it takes a long time to upload images and server response time is high and prone to errors. Image versions are done in a background job but this is not enough to fix the problem. What I would like to do is to change the whole process of how the images are cropped in the frontend, processed and uploaded in the back. I want the pictures to be uploaded directly to the cloud without affecting the server response time. Currently the process is done in 2 parts. first part user chooses an image to upload, the image is resize and uploaded to server (minimagick and carrierwave) and then the server renders the html view with this resized image, so the user can crop it. I'm using Jcrop and carrierwave to process and uploaded it to google cloud. (Not need to keep this library or gems).
Finally I want the current images that users have can be displayed using this new way, or migrate this images to other server. I'm open to any kind of modern solution. I have this webapp running on heroku.