diff --git a/Gemfile b/Gemfile index 98cdfdd7900..c6f88f8b81b 100644 --- a/Gemfile +++ b/Gemfile @@ -53,6 +53,8 @@ gem 'fast_xs' gem 'fast_xor' +gem 'open_uri_redirections' + # while we sort out https://github.com/sdsykes/fastimage/pull/46 gem 'fastimage_discourse', require: 'fastimage' gem 'aws-sdk', require: false diff --git a/Gemfile.lock b/Gemfile.lock index c36478e1dd8..38d014e9dff 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -214,6 +214,7 @@ GEM multi_json (~> 1.11) mustache nokogiri (~> 1.6.6) + open_uri_redirections (0.2.1) openid-redis-store (0.0.2) redis ruby-openid @@ -443,6 +444,7 @@ DEPENDENCIES omniauth-openid omniauth-twitter onebox + open_uri_redirections openid-redis-store pg pry-nav diff --git a/lib/file_helper.rb b/lib/file_helper.rb index 008dc55216e..30f9895a71c 100644 --- a/lib/file_helper.rb +++ b/lib/file_helper.rb @@ -14,7 +14,7 @@ class FileHelper tmp = Tempfile.new([tmp_file_name, extension]) File.open(tmp.path, "wb") do |f| - downloaded = uri.open("rb", read_timeout: 5, redirect: follow_redirect) + downloaded = uri.open("rb", read_timeout: 5, redirect: follow_redirect, allow_redirections: :all) while f.size <= max_file_size && data = downloaded.read(512.kilobytes) f.write(data) end