在一个新的Centos服务器上,我使用official guide在Riak2.1.3和Stanchion 2.1.1的基础上安装了RiakCS2.1.1。
当Riak CS conf文件中启用了anonymous_user_creation时,我能够创建新用户。但是当我禁用它并尝试通过Riak Control (1.0.2)创建新用户时,我得到了一个409 Conflict HTTP状态码。或者,当我尝试通过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和Stanchion配置中将admin.key和admin.secret设置为创建匿名用户时获得的值。我尝试创建另一个匿名用户,并仔细检查我是否采用了正确的key和secret值。
Riak,Stanchion或Riak CS日志中没有错误的痕迹-除了Riak CS访问日志,但这并不能说明太多。
我不知道下一步该怎么办。任何建议都将受到欢迎。
发布于 2016-02-08 23:01:08
感谢@Joe help,我能够调试这个问题,至少在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。
Fix -添加到~/.s3curl字符串,如:
push @endpoints, 's3.mydoma.in';现在我将尝试调试Riak CS Control。
https://stackoverflow.com/questions/35209433
复制相似问题