<div dir="auto">Eu costumo usar o yada <a href="http://search.cpan.org/~syp/AnyEvent-Net-Curl-Queued-0.047/bin/yada">http://search.cpan.org/~syp/AnyEvent-Net-Curl-Queued-0.047/bin/yada</a></div><div class="gmail_extra"><br><div class="gmail_quote">On May 24, 2017 12:55 AM, "breno" <<a href="mailto:oainikusama@gmail.com">oainikusama@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">Oi Aureliano,</p>
<p dir="ltr">se você está interessado em benchmarks, pode experimentar o LWP::Curl em vez do Furl, ou se tiver paciência pra ir direto ao metal, Net::Curl ou WWW::Curl.</p>
<p dir="ltr">O que quer dizer com "truncado"? Se a conexão cai depois de X bytes baixados (e se vc consegue garantir que o arquivo parcial contém apenas dados válidos), vc pode baixar só o que falta e depois juntar os dois pedaços na mão. Por exemplo, se o arquivo parcial foi baixado em "parcial.tmp":</p>
<p dir="ltr">---------8<---------<br>
my $ua = Furl->new;<br>
my $res = $ua->get( '<a href="http://exemplo.com/arquivo.tmp" target="_blank">http://exemplo.com/arquivo.<wbr>tmp</a>', Range => 'byes=' . -s 'parcial.tmp' . '-');<br>
open my $ fh, '>>', 'parcial.tmp;<br>
print $fh, $res->content;<br>
close $fh;<br>
---------8<---------</p>
<p dir="ltr">(código não testado, estou no celular)</p>
<p dir="ltr">Se o servidor suporta conteúdo parcial (ele responde o primeiro request com Accept-Ranges), isso deve baixar o resto do arquivo. Idealmente, em vez de sobrescever o arquivo parcial, vc junta o conteúdo dos dois em um terceiro arquivo.</p>
<p dir="ltr">Finalmente, se quiser baixar vários pedaços do arquivo em paralelo, pode experimentar o HTTP::Range e o LWP::Parallel::UserAgent, ou se inspirar neles e implementar sua própria solução paralela com Furl ou LWP::Curl.</p>
<p dir="ltr">[]s<br>
-b</p>
<br><div class="gmail_quote"><div dir="ltr">On 23:26, Tue, 23 May 2017 Aureliano Guedes, <<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr">
<div id="m_2232027031259105239m_9146569206389881045divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr">
<p>Ola Monges,</p>
<p><br>
</p>
<p>Gostaria de saber qual metodo vocês mais gostam para fazer downloads em massa.<br>
</p>
<p><br>
Eu usava muito LWP, recentemente comecei usar uma combinação de Parallel::ForkManager e Furl, mas pra meu tipo de dado tem truncado parte dos download. (vale uma dica pra lidar com dados truncados?)
<br>
<br>
No meu caso, eu to fazendo download de mais me milhoes de sequencias, pra isso eu sigo a regra do servidor e peço apenas 500 por vez e limito em 10 fork.<br>
<br>
Tem outros metodos que posso usar mas acabo perdendo e muito a eficiência. Por isso pretendo testar um benchmark em varias formas diferentes.<br>
<br>
Bom, sei que existem ferramentas, BioPerl, etc... <br>
<br>
Abraços,<br>
acpguedes<br>
</p>
</div>
</div>

______________________________<wbr>_________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/<wbr>listinfo/rio-pm</a></blockquote></div>
<br>______________________________<wbr>_________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/<wbr>listinfo/rio-pm</a><br></blockquote></div></div>