Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Re: download part of remote files

by rmckillen (Novice)
on Mar 08, 2001 at 01:55 UTC ( #62840=note: print w/replies, xml ) Need Help??


in reply to Re: download part of remote files
in thread download part of remote files

I know that LWP can be used to download files from a remote server, something like:
$file = HTTP::Request->new(GET => 'http://www.server.com/filename.mp3' +);
The last 128 bytes of an mp3 contain information about the file such as length, artist, song, etc. I want to download only the last 128 bytes so I can get to this information and store it in a mysql database.

So I guess my question is, what do I replace that line of code with so it only gets the last 128 bytes?

Replies are listed 'Best First'.
Re: Re: Re: download part of remote files
by merlyn (Sage) on Mar 08, 2001 at 02:50 UTC
    RFC2068 (HTTP/1.1) describes a partial-content protocol. If a response comes back with "Accept-Ranges: bytes" then you may ask for "Range: bytes=-128" in a request, and get just the last 128 bytes. That'd be like this:
    my $url = "http://www.server.com/filename.mp3"; use LWP::UserAgent; my $ua = LWP::UserAgent->new; use HTTP::Request::Common; my $response = $ua->simple_request(GET $url, Range => 'bytes=-128'); if ($response->is_success) { print "last 128 bytes is: ", substr($response->content, -128), "\n"; print "(although entire content was retrieved)\n" if length ($respon +se->content) > 128; }
    Note that if the range request is not honored, you'll get back the entire content instead. If you wanted, you can probe first to see if the "Accept-ranges" header is in the response for that particular URL.

    -- Randal L. Schwartz, Perl hacker

Re: Re: Re: download part of remote files
by rpc (Monk) on Mar 08, 2001 at 02:18 UTC
    HTTP does not have a facility like FTP's RESTORE afaik. I think you'll have to get the whole thing.
Re: Re: Re: download part of remote files
by arturo (Vicar) on Mar 08, 2001 at 02:22 UTC

    What rpc says ... if you are on good terms with the people running the server, you might ask them kindly could they do this indexing themselves, and make the mp3 tags available to you. Otherwise, you're going to have to grab the whole thing.

    Update Looky how tye's answer was the one I ended up suggesting =)

    Philosophy can be made out of anything. Or less -- Jerry A. Fodor

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://62840]
help
Chatterbox?
[Cosmic37]: I am out of practice; I use Perl for scientific programming for number crunching
[Corion]: Cosmic37: Basically, you read one file into a hash, keyed by your key, and then match the lines from the second file to that hash
[Cosmic37]: note that the two files only have datetimes which may match whereas other data per line is different format in file1 and file2 - is that really intersection?
[jedikaiti]: Hi Monks
[Corion]: Cosmic37: Well, if you want to use only parts of a line for the key, see split or whatever other mechanism to extract the key from the line
[Corion]: Hi jedikaiti!
[Cosmic37]: is there a webpage for full CB for this chat rather than side panel chat?
[Cosmic37]: thank you for advice
[Cosmic37]: peach greets jedi
[Cosmic37]: ok this one works better fullpage chat

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (9)
As of 2017-06-29 16:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (672 votes). Check out past polls.