0

如何使用 Net::SFTP 获取远程文件并将其流式传输,而无需等待整个文件下载?

我的 test.zip 文件大小为 1GB。当我运行这段代码时,我的浏览器几分钟内什么也没做,然后下载终于开始了。我希望它早点开始流式传输文件。我必须使用 Net::SFTP 或类似的东西,因为该文件只能通过 SSH 或 SFTP 获得。

我也试过Net::SFTP的下载和下载!方法并得到相同的结果。

headers['Content-Type'] = 'application/zip'
headers['Content-disposition'] = "attachment; filename=test.zip"
self.response_body = Enumerator.new do |lines|
  Net::SFTP.start('example.com', 'foo', keys: ['~/.ssh/id_rsa.pub']) do |sftp|
    file = sftp.file.open('/path/to/test.zip')
    lines << file.read(4096) until file.eof?
  end
end
4

0 回答 0