这会引起Ruby的记忆问题。我知道,如果大小超过10kb,则开放式URI会将其写入temfile。但是,HTTPARTY会在将整个PDF保存到记忆之前,然后再将其写入tempfile?

src = Tempfile.new("file.pdf")
src.binmode
src.write HTTParty.get("large_file.pdf").parsed_response
有帮助吗?

解决方案

您可以使用net :: http。看 文档 (特别是标题为“流响应机构”的部分)。

这是文档的示例:

uri = URI('http://example.com/large_file')

Net::HTTP.start(uri.host, uri.port) do |http|
  request = Net::HTTP::Get.new uri.request_uri

  http.request request do |response|
    open 'large_file', 'w' do |io|
      response.read_body do |chunk|
        io.write chunk
      end
    end
  end
end
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top