Note of MogileFS #07 Using MogileFS (2)
今回はMogileFS::Clientの使い方です。
new(HASH %args)
下記の値をハッシュで渡します。(use filedsプラグマより)
- root
- NFS依存の場合のみ必要なので、要らないです。
- domain
- domainネームスペース(scalar)
- backend
- MogileFS::Backendオブジェクト(object)
- readonly
- trueならクライアントはreadonlyになる(bool)
- hosts
- trackersの指定
- timeout
- クライアントのタイムアウト指定
使い方としては前回の例を踏襲すれば下記のような形です。
use MogileFS::Client; my $mogc = MogileFS::Client->new( domain => 'www.art-code.org', hosts => [qw/10.255.255.30:7001 10.255.255.31:7001/] );
IO::Handle new_file(SCALAR $key, SCALAR $class, SCALAR $bytes, HASHREF $opts)
新しいファイルハンドルを開きます。
my $fh = $mogc->new_file('foo', 'some_file'); print $fh "hogehoge"; $fh->close;
SCALAR store_file(SCALAR $key, SCALAR $class, SCALAR $file, HASHREF $opts)
指定されたファイルを保存し、バイト数を返します。
$mogc->store_file('some_file', 'foo', '/var/tmp/dummy.txt');
SCALAR store_content(SCALAR $key, SCALAR $class, SCALAR $content, HASHREF $opts)
ファイルの内容を保存し、バイト数を返します。
$mogc->store_content('some_file', 'foo', 'ほげほげ');
ARRAY get_paths(SCALAR $key, HASHREF $opt)
実際に格納されているコンテンツの所在を返します。*1
my @pathes = $mogc->get_paths('piyo'); print @pathes;
実際には
["http://10.255.255.31:7500/dev2/0/000/000/0000000016.fid"]
こんな形でレスポンスが返って来ます。
SCALARREF get_file_data(SCALAR $key, SCALAR $timeout)
ファイルの内容をリファレンスとして返します。
my $content = $mogc->get_file_data('some_file'); print $$content;
SCALAR delete(SCALAR $key)
そのキーで保存されてるファイルを削除します。
$mogc->delete('some_file');
SCALAR rename(SCALAR $from_key, SCALAR $to_key)
キーのリネームを行います。
$mogc->rename('some_key', 'any_key');
ARRAY or ARRAYREF list_keys(SCALAR $prefix, SCALAR $after, SCALAR $limit)
keyの検索を行います。
my $result = $mogc->list_kyes('test_a', undef, 10); print Dumper $result;
ちょっとafterの意味だけは謎です。。。
# if you expect an array of return values, returns: # ($after, $keys) # but if you expect only a single value, you just get the arrayref of keys. the # value $after is to be used as $after when you call this function again.
ソース内のコメントではこんな風に書いてあります。
ちょっと後で訳しますw
*1:引数ミスってたので修正