我只需要通过 HTTP 下载文件的前几千字节。
我试过了
require 'open-uri'
url = 'http://example.com/big-file.dat'
file = open(url)
content = file.read(limit)
但它实际上下载了完整的文件。
最佳答案
这似乎在使用套接字时有效:
require 'socket'
host = "download.thinkbroadband.com"
path = "/1GB.zip" # get 1gb sample file
request = "GET #{path} HTTP/1.0\r\n\r\n"
socket = TCPSocket.open(host,80)
socket.print(request)
# find beginning of response body
buffer = ""
while !buffer.match("\r\n\r\n") do
buffer += socket.read(1)
end
response = socket.read(100) #read first 100 bytes of body
puts response
我很好奇是否有“ ruby 之道”。
关于ruby - 如何使用 ruby 仅通过 HTTP 下载大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1120350/