2011-10-03 12 views
8

yazma Faraday Yakut mücevher kullanma:böyle bir görüntü için bir URL vurmak <a href="https://github.com/technoweenie/faraday" rel="noreferrer">Faraday</a> mücevher kullanırken görüntüyü indirip diske

http_conn = Faraday.new do |builder| 
    builder.adapter Faraday.default_adapter 
end 
response = http_conn.get 'http://example.tld/image.png' 

nasıl diske Faraday yanıtından resim dosyasını yazabilirsiniz?

response.body özniteliğinde hata ayıklama, bunun ikili veri olduğunu gösterir.

Herhangi bir yardım büyük beğeni topladı.

cevap

11

Neden başka bir dosya gibi response.body yazmıyorsunuz?

File.open('image.png', 'wb') { |fp| fp.write(response.body) } 
+4

Yanıt gövdesi büyükse burada ne olur? Dosyaya yazılmadan önce tüm vücudun belleğe okunması gibi gözüküyor - dosyaya yığınlar halinde yazabilmek iyi olur. –

+0

@JP. Tüm görüntüyü hafızanın içine çeken Faraday değil mi? Yoksa Faraday'ı nasıl akıtacaksın? –

+1

Tam olarak, evet Faraday'ı vücudu akıtmak için bir yol olup olmadığını merak ediyorum. HTTP bayt aralıkları kullanarak bir HTTP IO sınıfını uygulamak istedim, böylece (örneğin) her şeyi almadan büyük bir arşiv dosyasından küçük bir dosya alabiliyorum (ruby zip File IO nesneleriyle aynı şeyi yapabilir ve sadece zip merkezi dizinini ve istenen içeriği okuyarak) –

İlgili konular

 İlgili konular