Riak CS 如何获取所有存储桶和所有文件的列表
Riak CS how to get list of all buckets and all files
我很惊讶在文档中找不到非常简单问题的答案:
我如何获得我的 Riak CS 安装中所有存储桶和所有文件的列表?
此外,我需要使用某些 "root" 帐户访问所有存储桶中的所有这些文件 - 我该怎么做?
无论如何根据文档: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 面板中看到它。
对于列表部分,尝试s3cmd la -r s3://
我不认为默认情况下有一个帐户可以访问所有内容,您必须将该帐户添加到每个存储桶的 ACL
我好像使用的是自定义主机库,所以你要做的是
告诉 s3curl.pl
。如您所知,因为 S3(或 AWS v2)
authentication 可以是路径样式,也可以是子域样式,s3curl.pl
可以
不要按原样使用 URL 的主机部分或主机 header。因此,它有一些
用于识别主机库的硬编码端点 [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
获取所有用户信息后,您可以做任何事情,例如列出
特定用户的存储桶或列出特定存储桶中的所有 objects。
[1] https://github.com/ksauzz/s3curl/blob/master/s3curl.pl#L30-L34
[2] https://github.com/ksauzz/s3curl/blob/master/s3curl.pl#L121
我很惊讶在文档中找不到非常简单问题的答案: 我如何获得我的 Riak CS 安装中所有存储桶和所有文件的列表? 此外,我需要使用某些 "root" 帐户访问所有存储桶中的所有这些文件 - 我该怎么做?
无论如何根据文档: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 面板中看到它。
对于列表部分,尝试s3cmd la -r s3://
我不认为默认情况下有一个帐户可以访问所有内容,您必须将该帐户添加到每个存储桶的 ACL
我好像使用的是自定义主机库,所以你要做的是
告诉 s3curl.pl
。如您所知,因为 S3(或 AWS v2)
authentication 可以是路径样式,也可以是子域样式,s3curl.pl
可以
不要按原样使用 URL 的主机部分或主机 header。因此,它有一些
用于识别主机库的硬编码端点 [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
获取所有用户信息后,您可以做任何事情,例如列出 特定用户的存储桶或列出特定存储桶中的所有 objects。
[1] https://github.com/ksauzz/s3curl/blob/master/s3curl.pl#L30-L34 [2] https://github.com/ksauzz/s3curl/blob/master/s3curl.pl#L121