my $buckets = {
files => 5800,
- usage => 5801,
+ session => 5801,
};
sub new {
sub usage_decr {
my ($self,$data) = @_;
- $self->{usage}->decr( $data->{login} => $data->{size} );
+ $self->{session}->decr( $data->{login} . ':usage' => $data->{size} );
}
sub usage_incr {
my ($self,$data) = @_;
- $self->{usage}->incr( $data->{login} => $data->{size} );
+ $self->{session}->incr( $data->{login} . ':usage' => $data->{size} );
}
sub usage {
my ($self,$data) = @_;
- $self->{usage}->get( $data->{login} );
+ $self->{session}->get( $data->{login} . ':usage' );
+}
+
+sub _key {
+ my $data = shift;
+ #md5_base64( $data->{login} . '/' . $data->{file} );
+ $data->{login} . ':' . $data->{file};
}
sub file_set {
my ($self,$data) = @_;
- my $k = md5_base64( $data->{login} . '/' . $data->{file} );
+ my $k = _key $data;
my $json = encode_json $data;
$self->{files}->set( $k => $json );
return $json;
sub file_get {
my ($self,$data) = @_;
- my $k = md5_base64( $data->{login} . '/' . $data->{file} );
+ my $k = _key $data;
if ( my $json = $self->{files}->get($k) ) {
return decode_json $json;
}
sub remove_file {
my ( $self, $data ) = @_;
$self->usage_decr( $data );
- my $k = md5_base64( $data->{login} . '/' . $data->{file} );
+ my $k = _key $data;
$self->{files}->delete( $k );
}
my $new = "users/$data->{login}/blob/$dir$file";
if ( ! -e $new ) {
# create path from md5sum file
- my $dir = $1 if $new =~ m{^(.+)/[^/]+$};
- make_path $dir unless -d $dir;
+ my $only_dir = $1 if $new =~ m{^(.+)/[^/]+$};
+ make_path $only_dir unless -d $only_dir;
$imported += link "md5/$md5", $new;
- $self->new_file({
+ my $fake = {
login => $data->{login},
host => $data->{host},
file => $dir . $file,
md5 => $md5,
size => -s $new,
- });
+ };
+ $self->new_file($fake);
+ warn "fake ",dump($fake);
} else {
md5pool $new => $md5;
}