Преобразование скрипта Python в Ruby (загрузка части файла) - PullRequest
1 голос
/ 21 июня 2010

Я занимался этим пару дней, и мне совсем не повезло.Несмотря на чтение более этих двух сообщений, я не могу переписать этот маленький скрипт на python, который я написал в ruby.

clean_link = link['href'].replace(' ', '%20')
mp3file = urllib2.urlopen(clean_link)
output = open('temp.mp3','wb')
output.write(mp3file.read(2000))
output.close()

Я пытался использовать open-uri и net/http, чтобы сделать то же самое в ruby, но продолжаю сталкиваться с проблемой перенаправления URL.Пока у меня есть

clean_link = link.attributes['href'].gsub(' ', '%20')
link_pieces = clean_link.scan(/http:\/\/(?:www\.)?([^\/]+?)(\/.*?\.mp3)/)

host = link_pieces[0][0]
path = link_pieces[0][1] 

Net::HTTP.start(host) do |http|
    resp = http.get(path)
    open("temp.mp3", "wb") do |file|
        file.write(resp.body)
    end
end

Есть ли более простой способ сделать это в ruby?Кроме того, как и в случае сценария Python, есть ли способ загрузить только часть файла?

РЕДАКТИРОВАТЬ: прогресс обновлен

1 Ответ

1 голос
/ 21 июня 2010

см. здесь & здесь

http.request_get('/index.html') {|res|
  size = 0
  res.read_body do |chunk|
     size += chunk.size
     # do some processing
     break if size >= 2000
  end
}

, но вы не можете контролировать размеры куска здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...