Oi Mongers,

venho humildemente consultar o vasto conhecimento de vocês em prol da pesquisa 
científica.

Preciso consultar o tamanho de um arquivo em um servidor ftp, antes de decidir 
se o arquivo deverá ou não ser baixado.
Eu estava usando o LWP::Simple::head($url) para isto, e estava funcionando bem, 
até eu ter que usá-lo através de um proxy.
O que acontece é o seguinte, usando sem proxy, eu consigo acessar as 
informações sobre tamanho, formato, codificação, etc,


my $downloadfile = 
"ftp://hgdownload.cse.ucsc.edu/goldenPath/ce4/database/all_est.txt.gz";;
my ($content_type, $document_length, $modified_time, $expires, $server) = 
LWP::Simple::head($downloadfile);

--- ou

if (my $res = LWP::Simple::head($downloadfile)) {
    print "$downloadfile ok\n"; ### debug
    p($res->{_headers});
} else {
    print "$downloadfile not available\n"; ### debug
}


--- e quando uso 

use LWP::Simple qw($ua head);
$ua->proxy([qw(http ftp wais)], 'http://10.46.10.19:3129');


para definir o proxy, ele não retorna estas informações.


Se eu mandar imprimir $res->{_headers}, tenho isso:

--- rodando sem proxy

HTTP::Headers  {
    public methods (38) : as_string, authorization, authorization_basic, clear, 
client_date, content_encoding, content_is_html, content_is_text, 
content_is_xhtml, content_is_xml, content_language, content_length, 
content_type, content_type_charset, date, expires, from, header, 
header_field_names, if_modified_since, if_unmodified_since, init_header, 
last_modified, new, proxy_authenticate, proxy_authorization, 
proxy_authorization_basic, push_header, referer, referrer, 
remove_content_headers, remove_header, scan, server, title, user_agent, 
warning, www_authenticate
    private methods (5) : _basic_auth, _date_header, _header, _process_newline, 
_sorted_field_names
    internals: {
        client-date         =>  "Fri, 08 Mar 2013 19:33:58 GMT",
        client-request-num  =>  1,
        content-encoding    =>  "gzip",
        content-length      =>  14169205,
        content-type        =>  "text/plain",
        last-modified       =>  "Mon, 14 Mar 2011 16:52:05 GMT",
        server              =>  "FTP Server"
    }
}




--- com proxyHTTP::Headers  {
    public methods (38) : as_string, authorization, authorization_basic, clear, 
client_date, content_encoding, content_is_html, content_is_text, 
content_is_xhtml, content_is_xml, content_language, content_length, 
content_type, content_type_charset, date, expires, from, header, 
header_field_names, if_modified_since, if_unmodified_since, init_header, 
last_modified, new, proxy_authenticate, proxy_authorization, 
proxy_authorization_basic, push_header, referer, referrer, 
remove_content_headers, remove_header, scan, server, title, user_agent, 
warning, www_authenticate
    private methods (5) : _basic_auth, _date_header, _header, _process_newline, 
_sorted_field_names
    internals: {
        client-date          =>  "Fri, 08 Mar 2013 19:36:13 GMT",
        client-peer          =>  "10.46.10.19:3129",
        client-response-num  =>  1,
        connection           =>  "close",
        date                 =>  "Fri, 08 Mar 2013 19:35:52 GMT"
    }
}




Ele simplesmente não cria/recebe content-encoding, content-length, 
content-type,  last-modified e  server. 
Só o que eu preciso mesmo é ocontent-length.

By the way, o LWP::UserAgent  head() não me informa o tamanho do arquivo. Pelo 
menos não nos meus testes.

Vocês conhecem alguma outra maneira de obter a informação de tamanho do arquivo 
sem ter que baixá-lo?
Acessando o directory listing também não dá, porque através do proxy, o formato 
que ele retorna varia em cada sistema (pelo menos foi o que eu observei. me 
corrijam se eu estiver errada).



Obrigada!

Abraços,
Nicole
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm

Responder a