0

在新的 Centos 服务器上,我使用官方指南在 Riak 2.1.3 和 Stanchion 2.1.1 之上安装了 Riak CS 2.1.1 。

anonymous_user_creation在 Riak CS conf 文件中启用时,我能够创建新用户。但是当我禁用它并尝试通过 Riak Control (1.0.2) 创建新用户时,我得到一个409 ConflictHTTP 状态代码。或者当我尝试通过s3curl列出所有用户时(我已经使用正确的凭据设置了~/.s3curl文件并使用./s3curl.pl --id=cdn -- -k https://s3.example.com:8081/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>

我已经将 Riak CS 和 Stanchion 配置中的 admin.key 和 admin.secret 设置为我创建匿名用户的值。我尝试创建另一个匿名用户并仔细检查我是否为密钥和秘密采用了正确的值。

在 Riak、Stanchion 或 Riak CS 日志中没有任何错误痕迹——除了 Riak CS 访问日志,但这并不能说明什么。

我不知道下一步该做什么。欢迎大家提出意见。

4

1 回答 1

0

感谢@Joe 的帮助,我至少能够为 s3curl 调试这个问题。

事实证明,这与我选择 Riak CS 的“直接”配置而不是“代理”这一事实有关。这意味着我给了它自己的主机名而不是“s3.amazonaws.com”(由于客户端兼容性问题,Riak CS 真的试图伪装成真正的 S3)。

虽然 Riak CS 使用这个字符串来计算校验和(以 erlang-y 格式):

["GET","\n",[],"\n",[],"\n",["Mon, 08 Feb 2016 14:00:58 +0000","\n"],[],["/riak-cs/users",[]]]

s3curl,遇到未知的主机名,使用了这个:

GET\n\n\nMon, 08 Feb 2016 14:10:28 +0000\n/s3.mydoma.in/riak-cs/users

这导致Access Denied.

修复 - 添加到~/.s3curl字符串,如:

push @endpoints, 's3.mydoma.in';

现在我将尝试调试 Riak CS Control。

于 2016-02-08T15:01:08.167 回答