display and/or create md5sum in user.md5 xattr
[cloudstore.git] / bin / lighttpd-secdownload.pl
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4 use autodie;
5
6 # ./lighttpd-secdownload.pl ~u2001/foo.txt | xargs -i HEAD -u http://localhost{}
7
8 use Digest::MD5 qw(md5 md5_hex md5_base64);
9 use Data::Dump qw(dump);
10
11 my $config;
12
13 open(my $secdownload_conf, '<', '/etc/lighttpd/conf-enabled/90-secdownload.conf');
14 while(<$secdownload_conf>) {
15         chomp;
16         my ( $n, $v ) = split(/\s+=\s+/);
17         $v =~ s/^"//;
18         $v =~ s/"$//;
19         $config->{$n} = $v;
20 }
21
22 warn "# config ",dump($config);
23
24 foreach my $path ( @ARGV ) {
25
26         $path =~ s{^.*?(/\d\d\d\d/)}{$1}; # cleanup path prefix
27
28         my $t_hex = sprintf('%08x', time() );
29         my $md5_hex = md5_hex($config->{'secdownload.secret'}.$path.$t_hex);
30
31         my $link = $config->{'secdownload.uri-prefix'} . $md5_hex . '/' . $t_hex . $path;
32         print $ENV{HTML} ? qq|<a href=$link>$path</a>\n| : "$link\n";
33
34 }
35
36