diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-11-16 21:36:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-16 21:36:28 +0100 |
commit | 48f8658d34f453f9e5687835e384e2ddeb81b509 (patch) | |
tree | 514251babae2e1d9afe94fe784bff5d32c989498 /lib | |
parent | 3517867b7656ff506a04e394fc8c1a855b7d504a (diff) |
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.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/paperclip/response_with_limit_adapter.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/paperclip/response_with_limit_adapter.rb b/lib/paperclip/response_with_limit_adapter.rb index 17a2abd25..deb89717a 100644 --- a/lib/paperclip/response_with_limit_adapter.rb +++ b/lib/paperclip/response_with_limit_adapter.rb @@ -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) |