[Rio-pm] Metodos de Download em Massa

breno oainikusama em gmail.com
Ter Maio 23 20:54:47 PDT 2017


Oi Aureliano,

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.

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":

---------8<---------
my $ua = Furl->new;
my $res = $ua->get( 'http://exemplo.com/arquivo.tmp', Range => 'byes=' . -s
'parcial.tmp' . '-');
open my $ fh, '>>', 'parcial.tmp;
print $fh, $res->content;
close $fh;
---------8<---------

(código não testado, estou no celular)

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.

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.

[]s
-b

On 23:26, Tue, 23 May 2017 Aureliano Guedes, <guedes_1000 em hotmail.com>
wrote:

> Ola Monges,
>
>
> Gostaria de saber qual metodo vocês mais gostam para fazer downloads em
> massa.
>
>
> 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?)
>
> 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.
>
> Tem outros metodos que posso usar mas acabo perdendo e muito a eficiência.
> Por isso pretendo testar um benchmark em varias formas diferentes.
>
> Bom, sei que existem ferramentas, BioPerl, etc...
>
> Abraços,
> acpguedes
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20170524/6aa525c8/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm