use memcached session bucket for usage
[cloudstore.git] / lib / CloudStore / Couchbase.pm
index 5a27bfd..7585784 100644 (file)
@@ -12,7 +12,7 @@ use Data::Dump qw(dump);
 
 my $buckets = {
        files => 5800,
-       usage => 5801,
+       session => 5801,
 };
 
 sub new {
@@ -42,22 +42,28 @@ 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;
@@ -65,7 +71,7 @@ sub file_set {
 
 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;
        }
@@ -90,7 +96,7 @@ sub new_file {
 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 );
 }