From 48f4589c6f35f69042c1905a6101b24d6a025b79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Hanol?= Date: Mon, 11 May 2015 17:03:48 +0200 Subject: [PATCH] try to fix missing downloads by re-downloading them --- lib/tasks/uploads.rake | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/tasks/uploads.rake b/lib/tasks/uploads.rake index 99a3c7aa514..a4aa29ac1e9 100644 --- a/lib/tasks/uploads.rake +++ b/lib/tasks/uploads.rake @@ -240,6 +240,17 @@ def regenerate_missing_optimized upload = "#{public_directory}#{optimized_image.upload.url}" if !File.exists?(thumbnail) || File.size(thumbnail) <= 0 + # make sure the original image exists locally + if (!File.exists?(upload) || File.size(upload) <= 0) && optimized_image.upload.origin.present? + # try to fix it by redownloading it + begin + downloaded = FileHelper.download(optimized_image.upload.origin, SiteSetting.max_image_size_kb.kilobytes, "discourse-missing", true) rescue nil + Discourse.store.store_upload(downloaded, optimized_image.upload) + ensure + downloaded.try(:close!) if downloaded.respond_to?(:close!) + end + end + if File.exists?(upload) && File.size(upload) > 0 FileUtils.mkdir_p(File.dirname(thumbnail)) OptimizedImage.resize(upload, thumbnail, optimized_image.width, optimized_image.height)