Я сделал удобный маленький экспандер ссылок, используя curl в своем приложении ruby (Sintra).
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
Проблема, с которой я столкнулся, заключается в том, что некоторые гении используют укороченные URL-адреса для ссылки на файлы .exe и .dmg, что было бы хорошо, но похоже, что мой скрипт curl выше ожидает полного ответа (то есть 1 ГБ!) Перед возвратом URL. Я не хочу использовать сторонние API для расширения ссылок, поскольку у меня есть значительный объем ссылок для расширения.
Кто-нибудь знает, как я могу настроить ограничение, чтобы просто найти URL, а не ждать полного ответа?