fix(parallel_download_queue): appending content to file in those circumstances does not lead to good result. for now write response.body directly to the attachment [may lead to RAM overhead in case of big file... but i do not have another quick fix idea]
This commit is contained in:
parent
6a7a44dd07
commit
e765ef16fd
1 changed files with 5 additions and 4 deletions
|
@ -36,11 +36,12 @@ module DownloadManager
|
||||||
File.write(attachment_path, attachment.file.read, mode: 'wb')
|
File.write(attachment_path, attachment.file.read, mode: 'wb')
|
||||||
else
|
else
|
||||||
request = Typhoeus::Request.new(attachment.url)
|
request = Typhoeus::Request.new(attachment.url)
|
||||||
request.on_body do |chunk|
|
|
||||||
File.write(attachment_path, chunk, mode: 'a+b')
|
|
||||||
end
|
|
||||||
request.on_complete do |response|
|
request.on_complete do |response|
|
||||||
unless response.success?
|
if response.success?
|
||||||
|
File.open(attachment_path, mode: "wb") do |fd|
|
||||||
|
fd.write(response.body)
|
||||||
|
end
|
||||||
|
else
|
||||||
File.delete(attachment_path) if File.exist?(attachment_path) # -> case of retries failed, must cleanup partialy downloaded file
|
File.delete(attachment_path) if File.exist?(attachment_path) # -> case of retries failed, must cleanup partialy downloaded file
|
||||||
on_error.call(attachment, path_in_download_dir, response.code)
|
on_error.call(attachment, path_in_download_dir, response.code)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue