forked from hachi/MogileFS-Utils
-
Notifications
You must be signed in to change notification settings - Fork 34
/
Copy pathmoglistkeys
executable file
·71 lines (42 loc) · 1.35 KB
/
moglistkeys
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/perl
=head1 NAME
moglistkeys -- Lists keys out of a MogileFS domain
=head1 SYNOPSIS
$ moglistkeys --trackers=host --domain=foo --key_prefix="/foo/bar/"
=head1 DESCRIPTION
If you store your MogileFS keys in a logical "structure", you may use this
tool to view lists of subsets of keys. Note that this is not going to be
equivalent to "cd" and "ls" tools, as listing "foo/" will list everything
underneath, so it's more akin to "ls -R"
=head1 OPTIONS
=over
=item --trackers=host1:7001,host2:7001
Use these MogileFS trackers to negotiate with.
=item --domain=<domain>
Set the MogileFS domain to use.
=item --key_prefix="/foo/bar/"
Search for keys starting with this prefix. Can be an arbitrary string.
=back
=head1 AUTHOR
Dormando E<lt>L<dormando@rydia.net>E<gt>
=head1 BUGS
None known.
=head1 LICENSE
Licensed for use and redistribution under the same terms as Perl itself.
=cut
# TODO: Add ways to limit # of keys displayed
use strict;
use warnings;
use lib './lib';
use MogileFS::Utils;
my $util = MogileFS::Utils->new;
my $usage = "--trackers=host --domain=foo --key_prefix='bar/'";
my $c = $util->getopts($usage, 'key_prefix=s');
my $mogc = $util->client;
$mogc->foreach_key(prefix => $c->{key_prefix}, sub {
my $key = shift;
print $key, "\n";
});
if ($mogc->errcode) {
die "Error listing files: ", $mogc->errstr, "\n";
}