https + Basic認証先の相手に対して連続ダウンロードしたいコトがありまして.
irvineだとうまくいかないのでruby書いてみた
さてさて.HTTPSで繋ぐ方法は適当にぐぐるとして,
相手先ファイルサイズがでかすぎてメモリが確保できないとかいうエラーが出て
とまっちゃうのです.
Net::HTTPRequest.body_streamとかもあるみたいなんですけど
うまくいかないので,httpヘッダの指定で何とかしてみることにします.
といっても難しい事はなくて,まずヘッダからファイルサイズを取得して
request = Net::HTTP::Head.new(ファイルパス);
result = http.request(request);
filesize= result["Content-Length"].to_i; # ファイルサイズ(bytes)
それを元に取得したい部分を決めて,
request["Range"]= "bytes=" +
rangeStart.to_s + "-" + rangeEnd.to_s;
result= http.request(request);
としてちょろちょろファイルに書き込めばOK.
と思ってたんだけど...
シェルで
wget --http-user=ユーザー名 --http-passwd=パスワード \
--no-check-certificate あどれす
とすればよかった.げしょげしょ. |