2012-10-12 81 views
4

我希望能够通过cURL创建一个Riak存储桶。我一直在网上搜索,似乎找不到办法。我知道有很多方法可以很容易地与驱动程序一起完成,但需要使用cURL为我正在开发的Saas应用程序完成。在cURL上创建Riak存储桶

回答

3

的另一件事(进一步的水桶和它们的属性页面的底部。) - 需要记住的重要一点是,没有通过调用(通过CURL或客户端API)显式“创建”存储桶的方式。

您只能通过上面的调用创建定制桶

原因是 - 桶只是一个键的前缀。在Riak系统中没有任何地方跟踪桶。没有文件在某处,内存中没有变量,或类似的东西。这就是为什么简单的“list bucket”命令非常昂贵:Riak从字面上必须遍历集群中的每个关键字,并通过查看关键字前缀来组装一个存储桶列表。

作为实际对象存在的唯一事物是具有非默认设置的存储桶,即自定义存储桶。这就是上面那个curl命令的作用 - 它跟踪Riak的一些非默认设置,以便在有人打来电话时咨询。

无论如何,故事的寓意是:你不需要在正常的操作过程中创建桶。你可以开始写信给它们,它们就会形成(再次,就是带有桶前缀的键将会产生,这意味着它们现在可以被昂贵的'列表桶'调用)迭代。

您只需发出定制桶的调用(并且您也不想那么做,因为实际上限制了在群集中创建的定制桶的数量,在某处9000)。

6

你会做一个PUT,将你想要的桶属性作为一个json对象传递,

curl -v http://riak3.local:8098/riak/newBucket -X PUT -H Content-Type:application/json --data-binary '{"props":{"n_val":5}}' 

docs有更完整的细节。

2

我还发现,如果您将一个新对象添加到一个不存在的存储桶中,它将即时创建该存储桶。

请记住,当您向其添加密钥时,会自动创建存储桶。有没有必要明确地“创造”一个水桶

Bucket Properties and Operations