私はRuby(Sintra)アプリケーション内でカールを使用して便利な小さなリンクエクスパンダーを作った。ルビー/カールリンクエキスパンダーメソッドが完全なターゲットURLをダウンロード中
def curbexpand(link)
result = Curl::Easy.new(link)
begin
result.headers["User-Agent"] = "..."
result.verbose = true
result.follow_location = true
result.max_redirects = 3
result.connect_timeout = 5
result.perform
return result.last_effective_url # Returns the final destination URL after x redirects...
rescue
return link
puts "XXXXXXXXXXXXXXXXXXX Error parsing link XXXXXXXXXXXXXXXXXXXXXXXXXXX"
end
end
私が持っている問題は、いくつかの天才がいいと思い.exeファイルのとした.dmgのにリンクするURL短縮サービスを使用していることですが、それは完全な応答が返されるのを待っている以上、私のカールのスクリプトのように見えます(つまり、 URLを返す前に1GBのファイルにすることができます)。私は、膨大な量のリンクを展開しているので、サードパーティのリンクエキスパンダーAPIを使用したくありません。
誰もが、私はちょうどURLを見つけるのではなく、完全な応答を待っているために縁石を微調整することができます方法を知っていますか?
'Curl :: Easy.http_head(link)'が動作するかもしれない – cmason
歓声cmason - これとNet :: HTTPも試してみて、どちらが速いのかを確認してください –