2013-04-04 48 views
0

我正在嘗試從s3下載一個大型(> 500mb)的霧文件。 我想檢查進度,但似乎多次下載文件。S3用霧讀取進度

我使用:

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) 

任何意見,不勝感激!

UPDATE: 寶石版本:

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 

回答

0

我不知道這是否與EXCON寶石的問題。您使用的是什麼版本的Excon,Fog和Ruby?

您可能還想嘗試使用EXCON_DEBUG = true重新運行腳本。希望你會得到一些更好的信息。

+0

我按照https://github.com/fog/fog/issues/1736#issuecomment-15962298 – 2013-04-05 18:35:50

+0

中的建議現在這樣做了。 – 2013-04-05 18:37:03

+0

我的輸出是在https://github.com/fog/fog/issues/1736#issuecomment-15973230,但它並沒有讓我對任何事情更清晰:( – 2013-04-05 19:34:26