我正在使用ruby aws/s3库从Amazon S3中检索文件。我按照文档流式传输一个对象并将其写入文件(每100个块调试一次以确认进度)Ruby:流式传输大型AWS S3对象冻结
这适用于小文件,但随机冻结VPS Ubuntu上下载大文件(150MB)。在慢速连接上从我的Mac中获取相同的文件(150MB)可以很好地工作。
挂起时没有错误抛出,调试输出的最后一行是'Finished chunk'。我已经看到它在冻结之前写入了100到10,000个大块。
任何人都会遇到这个问题,或者对原因可能有什么想法?
感谢
是挂起代码:
i=1
open(local_file, 'w') do |f|
AWS::S3::S3Object.value(key, @s3_bucket) do |chunk|
puts("Writing chunk #{i}")
f.write chunk.read_body
puts("Finished chunk #{i}")
i=i+1
end
end