Я использую следующую функцию Ruby для загрузки различных файлов через HTTP:
def http_download(uri, filename)
bytes_total = nil
begin
uri.open(
read_timeout: 500,
content_length_proc: lambda { |content_length|
bytes_total = content_length
},
progress_proc: lambda { |bytes_transferred|
if bytes_total
print("\r#{bytes_transferred} of #{bytes_total} bytes")
else
print("\r#{bytes_transferred} bytes (total size unknown)")
end
}
) do |file|
open filename, 'w' do |io|
file.each_line do |line|
io.write line
end
end
end
rescue => e
puts e
end
end
Я также хочу скачать файлы (csv, kml, zip, geojson) из этот сайт. Однако настроена какая-то задержка. Когда я нажимаю ссылку для скачивания в браузере, требуется некоторое время, пока не появится окно загрузки. Я предполагаю, что файл должен быть обработан на сервере, прежде чем его можно будет обслужить.
Как я могу изменить свой сценарий, чтобы учесть задержку?
Я использую Руби 2.2.2.
.csv
,.kml
,.zip
и несколько параметров запроса. - person ifyouseewendy   schedule 02.07.2015{ status: "processing", processing_time: 0, count: 0 }
,{ status: "processing", processing_time: 9.58, count: 0 }
. И после обработки вы скачаете файл. Поэтому я думаю, что вы можете просто добавить судью и повторить попытку обработки. - person ifyouseewendy   schedule 02.07.2015