2017-07-12 96 views
1

我用awscli下載文件:恢復中斷S3下載與awscli

$ aws s3 cp s3://mybucket/myfile myfile 

但下載被中斷(計算機進入睡眠模式)。我怎樣才能繼續下載? S3支持Range頭,但awscli s3 cp不允許我指定它。

該文件不公開,因此我無法使用curl手動指定標題。

回答

0

awscli工具中存在一個「隱藏」命令,允許較低級別的訪問S3:s3api†它不太友好(沒有s3:// URL並且沒有進度條),但它支持範圍說明符在get-object

--range (string) Downloads the specified range bytes of an object. For 
    more information about the HTTP range header, go to 
    http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35. 

這裏是如何繼續下載:

$ size=$(stat -f%z myfile) # assumes OS X. Change for your OS 
$ aws s3api get-object \ 
      --bucket mybucket \ 
      --key myfile \ 
      --range "bytes=$size-" \ 
      /dev/stdout >> myfile 

可以使用pv一個基本的進度條:

$ aws s3api ... /dev/stdout | pv >> myfile 

†在git中,s3是瓷器,而s3api是plubming。