don't cache blank image thumbnail

closes #CORE-1357

Change-Id: I4c911ece69aa7e17e74bc8f6a2307f9a00ff4ddc
Reviewed-on: https://gerrit.instructure.com/148916
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: Jeremy Putnam <jeremyp@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
This commit is contained in:
James Williams 2018-05-02 09:46:43 -06:00
parent 206fe775b1
commit 21b0f1e167
1 changed files with 5 additions and 3 deletions

View File

@ -1116,13 +1116,15 @@ class FilesController < ApplicationController
cancel_cache_buster
# include authenticator fingerprint so we don't redirect to an
# authenticated thumbnail url for the wrong user
url = Rails.cache.fetch(['thumbnail_url', params[:uuid], params[:size], file_authenticator.fingerprint].cache_key, :expires_in => 30.minutes) do
cache_key = ['thumbnail_url', params[:uuid], params[:size], file_authenticator.fingerprint].cache_key
url = Rails.cache.read(cache_key)
unless url
attachment = Attachment.active.where(id: params[:id], uuid: params[:uuid]).first if params[:id].present?
thumb_opts = params.slice(:size)
url = authenticated_thumbnail_url(attachment, thumb_opts)
url ||= '/images/no_pic.gif'
url
Rails.cache.write(cache_key, url, :expires_in => 30.minutes) if url
end
url ||= '/images/no_pic.gif'
redirect_to url
end