8
Quando si utilizza il Faraday gemma di colpire un URL di un'immagine come questa:Utilizzando Faraday rubino gemma per scaricare l'immagine e scrivere su disco
http_conn = Faraday.new do |builder|
builder.adapter Faraday.default_adapter
end
response = http_conn.get 'http://example.tld/image.png'
Come si può scrivere il file di immagine dalla risposta Faraday su disco?
Il debug dell'attributo response.body
indica che si tratta di dati binari.
Qualsiasi aiuto molto apprezzato.
Cosa succede qui se il corpo della risposta è grande? Sembra che tutto il corpo sia letto in memoria prima di essere scritto nel file: sarebbe bello poter scrivere sul file in blocchi. –
@ JP. Non è forse Faraday che sta leccando l'intera immagine nella memoria? O stai chiedendo come fare a Faraday per trasmetterlo in streaming? –
Esattamente, sì, mi sto chiedendo se c'è un modo per far sì che Faraday diffonda il corpo. Stavo cercando di implementare una classe IO HTTP utilizzando gli intervalli di byte HTTP in modo da poter (ad esempio) recuperare un piccolo file dall'archivio zip di grandi dimensioni senza recuperare l'intero oggetto (Ruby Zip può fare lo stesso con gli oggetti File IO ricercando e solo leggendo la directory centrale zip e il contenuto richiesto) –