Browse Source

Fix upload of remote media with OpenStack Swift sometimes failing (#16998)

Under certain conditions, files fetched from remotes trigger an error when
being uploaded using OpenStack Swift. This is because in some cases, the
remote server will not return a content-length, so our ResponseWithLimitAdapter
will hold a `nil` value for `#size`, which will lead to an invalid value
for the Content-Length header of the Swift API call.

This commit fixes that by taking the size from the actually-downloaded file
size rather than the upstream-provided Content-Length header value.
closed-social-v3
Claire 3 years ago
committed by Eugen Rochko
parent
commit
e65ede1ac5
1 changed files with 1 additions and 1 deletions
  1. +1
    -1
      lib/paperclip/response_with_limit_adapter.rb

+ 1
- 1
lib/paperclip/response_with_limit_adapter.rb View File

@ -17,9 +17,9 @@ module Paperclip
def cache_current_values
@original_filename = filename_from_content_disposition.presence || filename_from_path.presence || 'data'
@size = @target.response.content_length
@tempfile = copy_to_tempfile(@target)
@content_type = ContentTypeDetector.new(@tempfile.path).detect
@size = File.size(@tempfile)
end
def copy_to_tempfile(source)

Loading…
Cancel
Save