S3用雾读取进度

时间:2013-04-04 21:07:06

标签: ruby-on-rails ruby amazon-s3 fog

我正在尝试从s3下载带有雾的大型(> 500mb)文件。 我想查看进度,但似乎多次下载文件。

我正在使用:

connction = Fog::Storage.new(
  provider: 'AWS',
  aws_access_key_id: key_id,
  aws_secret_access_key: secret_key,
  region: 'eu-west-1',
)

connection.get_object(bucket, obj_key) do |chunk, remaining_bytes, total_bytes|
  file.write(chunk)
  p "Writing file: #{remaining_bytes} / #{total_bytes} remaining"
end

它似乎多次完成整个过程,几乎下载所有数据但是当剩下一兆字节时,它会重新开始下载!

大约4次循环后,它会引发错误:

negative argument (ArgumentError) (Excon::Errors::SocketError)

非常感谢任何建议!

更新 宝石版本:

excon (0.20.1)
    fog (1.10.1)
    builder
    excon (~> 0.20)
    formatador (~> 0.2.0)
    mime-types
    multi_json (~> 1.0)
    net-scp (~> 1.1)
    net-ssh (>= 2.1.3)
    nokogiri (~> 1.5.0)
    ruby-hmac

1 个答案:

答案 0 :(得分:0)

我想知道这是否是Excon gem的一个问题。您使用的是什么版本的Excon,Fog和Ruby?

您可能还想尝试使用EXCON_DEBUG = true重新运行脚本。希望你能得到更好的信息。