1 package CloudStore::dedup;
7 my ( $path, $md5 ) = @_;
9 my $pool = 'md5'; # FIXME sharding?
10 mkdir $pool unless -e $pool;
12 if ( -e "$pool/$md5" ) {
13 warn "dedup hit $md5 $path\n";
14 my $dedup = $path . '.dedup';
16 link "$pool/$md5", $path;
19 link $path, "$pool/$md5";
26 my ( undef, undef, undef, $nlink ) = stat $path;
28 warn "nlink $path $nlink";
31 my $empty_md5 = " " x 32;
36 my $path = "users/$data->{login}/blob/$data->{file}";
40 if ( $data->{md5} ne $empty_md5 ) {
41 path_md5 $path => $data->{md5};