Ruby open-uri redirect forbidden
Have a look at the open_uri_redirections gem.
It patches Ruby's OpenURI to allow redirections from HTTP to HTTPS or the other way around.
You can also catch the exception and then try it again with 'https' url.
url = "http://classic.ona.io/api/v1/files/3538545?filename=gringgo/attachments/1485229166168.jpg"uri = URI.parse(url)tries = 3begin uri.open(redirect: false)rescue OpenURI::HTTPRedirect => redirect uri = redirect.uri # assigned from the "Location" response header retry if (tries -= 1) > 0 raiseend
Ruby 2.4 fixed upgrade redirects (from http -> https) in open-uri
, so now:
RUBY_VERSION=> "2.4.2"require 'open-uri'=> trueopen('http://twitter.com')=> #<Tempfile:/tmp/open-uri20170926-24254-1kflwxq>
Source: http://blog.bigbinary.com/2017/03/02/open-uri-in-ruby-2-4-allows-http-to-https-redirection.html