0

フォグを使用して 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

そして、プロセス全体を複数回実行し、ほとんどすべてのデータをダウンロードしているように見えますが、1 メガバイトが残っていると、もう一度ダウンロードを開始します!

およそ 4 回のループの後、エラーが発生します。

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

どんなアドバイスでも大歓迎です!

更新: Gem のバージョン:

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
4

1 に答える 1