Changeset 6588
- Timestamp:
- Mar 14, 2006, 5:30:51 PM (20 years ago)
- Location:
- trunk/DataStore
- Files:
-
- 2 edited
-
Build.PL (modified) (1 diff)
-
lib/DataStore/File.pm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/DataStore/Build.PL
r6486 r6588 12 12 'Data::Validate::URI' => '0.01', 13 13 'LWP::UserAgent' => 0, 14 'POSIX' => 0, 14 15 'Params::Validate' => '0.77', 15 16 'Regexp::Common' => '2.113', -
trunk/DataStore/lib/DataStore/File.pm
r6543 r6588 1 1 # Copyright (C) 2006 Joshua Hoblitt 2 2 # 3 # $Id: File.pm,v 1. 2 2006-03-08 02:12:17jhoblitt Exp $3 # $Id: File.pm,v 1.3 2006-03-15 03:30:51 jhoblitt Exp $ 4 4 5 5 package DataStore::File; … … 13 13 use base qw( DataStore::Record ); 14 14 15 use Carp qw( carp ); 16 use Digest::MD5::File qw( file_md5_hex ); 17 use POSIX; 15 18 use Params::Validate qw( validate SCALAR ); 16 19 … … 83 86 } 84 87 88 =back 89 90 =head3 Object Methods 91 92 =over 4 93 94 =item * C<request()> 95 96 =cut 97 98 sub request 99 { 100 my $self = shift; 101 102 my %p = validate(@_, 103 { 104 filename => { 105 type => SCALAR, 106 regex => qr/\S+/, # string with atleast 1 non WS char 107 callbacks => { 108 'write access' => sub { 109 POSIX::access($_[0], &POSIX::W_OK); 110 }, 111 }, 112 }, 113 }, 114 ); 115 116 # make request 117 my $ua = LWP::UserAgent->new; 118 my $request = HTTP::Request->new(GET => $self->uri); 119 my $response = $ua->request($request, $p{filename}); 120 121 if (! $response->is_success) { 122 carp $response->status_line; 123 return; 124 } 125 126 if (defined $self->bytes) { 127 my $size = stat($p{filename})->size; 128 if (! $self->bytes == $size) { 129 unlink $p{filename}; 130 carp "uri: ", $self->uri, 131 " - expected size: ", $self->bytes, 132 " got: ", $size; 133 return; 134 } 135 } 136 137 if (defined $self->md5sum) { 138 my $md5 = file_md5_hex($p{filename}); 139 if (! $self->md5sum eq $md5) { 140 unlink $p{filename}; 141 carp "uri: ", $self->uri, 142 " - expected md5: ", $self->md5sum, 143 " got: ", $md5; 144 return; 145 } 146 } 147 148 return 1; 149 } 150 85 151 1; 86 152
Note:
See TracChangeset
for help on using the changeset viewer.
