Skip to content

Instantly share code, notes, and snippets.

@krishan
Last active August 29, 2015 14:19
Show Gist options
  • Select an option

  • Save krishan/3049c149a61864625678 to your computer and use it in GitHub Desktop.

Select an option

Save krishan/3049c149a61864625678 to your computer and use it in GitHub Desktop.
Hotfix for Scrivito Bug
# put this into config/initializers/scrivito_monkey_patch.rb
scrivito_version = Gem.loaded_specs["scrivito"].version
checked_versions = [">= 0.30.0", "<= 0.50.0"]
requirement = Gem::Requirement.new(checked_versions)
if !requirement.satisfied_by?(Gem::Version.new(scrivito_version))
raise "this monkey patch was designed for scrivito versions #{checked_versions}. "\
"you upgraded scrivito to #{scrivito_version}, please ensure it still applies and works"
end
# ensure the target class has been loaded
Scrivito::CmsBackend
module Scrivito
class CmsBackend
private
# overwriting this method
# note that only a single line is actually changed
def request_blob_metadata_from_s3(url)
uri = URI.parse(url)
retried = false
begin
### this line contains the actual patch
# before, buggy:
# response = ConnectionManager.request(uri, Net::HTTP::Head.new(uri.path))
# better:
response = ConnectionManager.request(uri, Net::HTTP::Head.new(uri))
@query_counter += 1
rescue NetworkError
raise if retried
retried = true
retry
end
raise ScrivitoError, "S3 responded with #{response.code}" unless response.code == '200'
{
content_length: response['content-length'],
content_type: response['content-type'],
cache_control: response['cache-control'],
}
end
end
end
@apepper

apepper commented Apr 27, 2015

Copy link
Copy Markdown

Mittlerweile in Version 0.60.0.rc1 und 0.50.1 nicht mehr notwendig.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment