Rinaldi Fonseca

Download de arquivos com Ruby

15 de maio de 2011

Dica simples: Estava criando uma aplicação onde precisei fazer o download de um arquivo e salvar no file system. Com este simples trecho de código é possível fazer isso:

require 'net/http'
 
Net::HTTP.start("rinaldifonseca.com") do |http|
    resp = http.get("/my_file.jpg")
    open("my_file.jpg", "wb") do |file|
        file.write(resp.body)
    end
end

4 Comentários »

  1. Cara Parabéns! por publicar isso,hoje é muito dificil encontrar assuntos em português na net sobre ruby.
    Valew,por esse post e por outros.

    Comentário por Ricardo — 1 de julho de 2011 @ 2:26

  2. Valeu Ricardo!

    Comentário por Rinaldi Fonseca — 1 de julho de 2011 @ 2:29

  3. Rinaldi, não sei se isso é pratica e como você tem mais conhecimento do que eu mas, o uso do “file.close” não é obrigatório?

    não tenho certeza em Linux, mas em Windows, isso pode dar um pouco de dor de cabeça, brinquei recentemente com o FileUtils e ao escrever e logo em seguida mover um arquivo, o Windows chiava porque o arquivo estava em “uso”

    Em linux eu acredito que não tenha esse tipo de problema já que é mais flexivel quanto ao filesystem, apesar de não saber exatamente quais problemas poderiam acarretar.

    levei um tempinho tentando descobrir qual era o problema no script, já que o unico output que eu tinha era “PERMISSION DENIED”..

    Abraço!

    Comentário por deadcow — 25 de fevereiro de 2012 @ 23:04

  4. Olá,

    Sempre é uma boa prática fechar o file descriptor mas neste caso, usando o File.open passando um bloco, o descriptor é fechado automaticamente.

    Abraços!

    Comentário por admin — 25 de fevereiro de 2012 @ 23:16

Feed RSS dos comentários deste post URL de TrackBack

Deixe um comentário

Spam protection by WP Captcha-Free