Backblaze-B2

 view release on metacpan or  search on metacpan

lib/Backblaze/B2/v1/AnyEvent.pm  view on Meta::CPAN

    $target_filename = encode('UTF-8', $target_filename );
    $target_filename =~ s!([^\x21-\x7d])!sprintf "%%%02x", ord $1!ge;
    
    my $mime_type = delete $options{ mime_type } || 'b2/x-auto';
    
    if( not defined $options{ content }) {
        open my $fh, '<', $filename
            or croak "Couldn't open '$filename': $!";
        binmode $fh, ':raw';
        $options{ content } = do { local $/; <$fh> }; # sluuuuurp
        $options{ mtime } = ((stat($fh))[9]) * 1000;
    };

    my $payload = delete $options{ content };
    if( not $options{ sha1 }) {
        my $sha1 = Digest::SHA1->new;
        $sha1->add( $payload );
        $options{ sha1 } = $sha1->hexdigest;
    };
    my $digest = delete $options{ sha1 };
    my $size = length($payload);



( run in 1.032 second using v1.01-cache-2.11-cpan-49f99fa48dc )