require 'base64' require 'digest/sha1' transformation = "c_scale,q_auto,dpr_auto,f_auto,w_auto:100:330" public_id = "local-env/2020-11/crop-sample-2x_uhl18c.jpg" account_name = "ACCOUNT_NAME" secret = "SECRET" to_sign = ([transformation, public_id]).join("/") p to_sign sh1 = Digest::SHA1.digest(to_sign + secret) p sh1 signature = 's--' + Base64.urlsafe_encode64(sh1)[0,8] + '--' url = 'https://res.cloudinary.com/' + account_name + '/image/upload/' + ([signature, to_sign]).join("/") p url p signature