Riak CS如何获取所有存储桶和所有文件的列表

时间:2015-08-03 16:55:49

标签: riak riak-cs

我很惊讶没有在文档中找到关于非常简单的问题的答案: 如何获取Riak CS安装中所有存储桶和所有文件的列表? 此外,我需要使用一些“root”帐户访问所有存储桶中的所有文件 - 我该怎么做?

无论如何根据文件:http://docs.basho.com/riakcs/latest/cookbooks/Account-Management/ 用户列表请求的示例网址如下所示:

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控制面板中看到它。

2 个答案:

答案 0 :(得分:1)

对于列表部分,请尝试s3cmd la -r s3://

我不认为默认情况下有一个帐户可以访问所有内容,您必须将帐户添加到每个存储分区的ACL

答案 1 :(得分: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