0

非常に単純な質問に対する回答がドキュメントにないことに驚きました: Riak CS インストール内のすべてのバケットとすべてのファイルのリストを取得するにはどうすればよいですか? また、「ルート」アカウントを使用して、すべてのバケット内のすべてのファイルにアクセスする必要があります - どうすればできますか?

いずれにせよ、ドキュメントによると: http://docs.basho.com/riakcs/latest/cookbooks/Account-Management/ ユーザー リスト リクエストのサンプル URL は次のようになります。

GET http://data.example.com/riak-cs/users -
or
s3curl --id admin -- http://data.mystorage.me/riak-cs/users

だから、私は.s3crulを編集しました:

%awsSecretAccessKeys = (
adminname => {
id => 'key here',
key => 'secret here',
},
);

s3curl を直接 riak cs に向けます:

s3curl.pl --id adminname -- http://192.168.0.20:8080/riak-cs/users

答えを得る:

<?xml version="1.0" encoding="UTF-8"?><Error><Code>AccessDenied</Code><Message>Access Denied</Message><Resource>/riak-cs/users</Resource><RequestId></RequestId></Error>

「adminname」は Riak CS の管理者アカウントであると確信しています。riac-cs-control panel で確認できます。

4

2 に答える 2

1

カスタム ホスト ベースを使用しているようですので、それを に伝えてくださいs3curl.pl。ご存じのように、S3 (または AWS v2) 認証はパス形式またはサブドメイン形式になるs3curl.plため、URL のホスト部分やホスト ヘッダーをそのまま使用することはできません。そのため、ホスト ベースを識別するためのハードコードされたエンドポイント [1] がいくつかあります。

一部のフォークでs3curl.plは、オプション引数でカスタム エンドポイントを指定できます [2]。cs_root_hostとして設定するとdata.mystorage.me、コマンド ラインの例は次のようになります。

s3curl --id admin --endpoint data.mystorage.me \
    -- http://data.mystorage.me/riak-cs/users

またはサブドメイン スタイルによって、

s3curl --id admin --endpoint data.mystorage.me \
    -- http://riak-cs.data.mystorage.me/users

すべてのユーザー情報を取得したら、特定のユーザーのバケットを一覧表示したり、特定のバケット内のすべてのオブジェクトを一覧表示したりするなど、何でもできます。

[1] https://github.com/ksauzz/s3curl/blob/master/s3curl.pl#L30-L34 [2] https://github.com/ksauzz/s3curl/blob/master/s3curl.pl#L121

于 2015-08-08T13:27:13.467 に答える
1

リスト部分については、試してくださいs3cmd la -r s3://

デフォルトですべてにアクセスできるアカウントはないと思います。各バケットの ACL にアカウントを追加する必要があります。

于 2015-08-03T22:07:55.397 に答える