Merge pull request #6655 from reitermarkus/curl-output
Use temp file for calculating hash.
This commit is contained in:
		
						commit
						1b18943317
					
				@ -184,9 +184,12 @@ def curl_check_http_content(url, user_agents: [:default], check_content: false,
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
def curl_http_content_headers_and_checksum(url, hash_needed: false, user_agent: :default)
 | 
			
		||||
  file = Tempfile.new.tap(&:close)
 | 
			
		||||
 | 
			
		||||
  max_time = hash_needed ? "600" : "25"
 | 
			
		||||
  output, = curl_output(
 | 
			
		||||
    "--connect-timeout", "15", "--include", "--max-time", max_time, "--location", url,
 | 
			
		||||
    "--dump-header", "-", "--output", file.path, "--include", "--location",
 | 
			
		||||
    "--connect-timeout", "15", "--max-time", max_time, url,
 | 
			
		||||
    user_agent: user_agent
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
@ -197,7 +200,7 @@ def curl_http_content_headers_and_checksum(url, hash_needed: false, user_agent:
 | 
			
		||||
    final_url = headers[/^Location:\s*(.*)$/i, 1]&.chomp
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  output_hash = Digest::SHA256.digest(output) if hash_needed
 | 
			
		||||
  output_hash = Digest::SHA256.file(file.path) if hash_needed
 | 
			
		||||
 | 
			
		||||
  final_url ||= url
 | 
			
		||||
 | 
			
		||||
@ -210,6 +213,8 @@ def curl_http_content_headers_and_checksum(url, hash_needed: false, user_agent:
 | 
			
		||||
    file_hash:      output_hash,
 | 
			
		||||
    file:           output,
 | 
			
		||||
  }
 | 
			
		||||
ensure
 | 
			
		||||
  file.unlink
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
def http_status_ok?(status)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user