【发布时间】:2012-06-22 10:04:24
【问题描述】:
我正在使用 ruby aws/s3 库从 Amazon S3 检索文件。我根据文档流式传输一个对象并将其写入文件(每 100 个块调试一次以确认进度)
这适用于小文件,但会随机冻结在 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
【问题讨论】: