cloudant文档简介

来源:互联网 发布:淘宝专业版全屏海报 编辑:程序博客网 时间:2024/05/20 05:05

Cloudant文档学习

前言

最近在项目中,有应用到分布式数据库cloudant,同时负责数据库模块的内容,因此,打算熟读这个软件的文档。

简介

Cloudant是IBM的一款分布式数据库软件,Database-as-a-service(DBaaS)。以Apache CouchDB为基础开发的,多租户(Multi-tenant),独立(dedicated),安装(installed)的服务。

Cloudant除了独立使用之外,在IBM bluemix的平台上也可以作为一种服务被使用。

正文:

所有对数据库的请求都是通过网页,因此,能访问web,就能使用Cloudant。客户与数据库之间通信,使用的协议是HTTP。

Cloudant支持的HTTP请求方法:

  • get:用url指定要请求的数据内容,包括静态数据,数据库,文档,配置信息,通常结果是以Json格式返回的。
  • Head:获得没有一个没有回应的get请求的头部。
  • Post:上传数据,上传文档,设置文档中的值,发送一些管理命令等。
  • Put:创建特定的对象,包括创建新的数据库,文档,视图(views),设计文档(design docs)等。
  • Delete:删除特定对象,例如,数据库,文档,视图,设计文档等。
  • Copy:一个特殊的方法,用于复制文档,和对象等。
    如果在URL中使用一个不被支持的请求,将会返回405错误代码,同时返回能接受的请求类型。

Json: 数据库中文档存储都是使用的Json数据格式进行编码,图像,视频,音频等被称为二进制大对象文件,能被当作附件存储在文档中。

分布式:Cloudant的API能确保用户与很多机器搭建起来的集群进行通信,一个集群中的机器必须确保是在相同的数据中心,但是可以是一个数据中心中的不同结点,不同结点为Cloudant的使用提供了高可靠性,高扩展性,高计算效率和高容错性。

Replication:是很多数据库都有的步骤,包括,Cloudant,CouchDB,PouchDB等。用于同步两个数据库的状态,以便他们内容是相同的。如果设置了continuous属性,源数据库内容一改变,目标数据库的内容也跟着改变。可用于不同数据库之间备份数据或共享数据等。

API
- 用户名和密码

  cloudant提供了三种输入用户名和密码的方式:
  • 在命令行以交互的方式。在命令中加入-u username,执行,命令行就会提示用户输入密码

  • 在命令行中直接输入用户名和密码。在命令中嵌入-u $ USERNAME : $ PASSWORD ,这样会将密码会直接显示中,比较危险。可以将这个参数写在配置文件中,然后为配置文件写一个别名,在命令中使用这个别名

    配置文件内容:
    –user $USERNAME:$PASSWORD
    –globoff
    –proto “=https”

    设置别名:
    alias acurl="curl -s --config <full_path_and_name_of_config_file>"

  • 在url中放入用户名和密码。如果使用的是https请求,可以将用户名和密码放入url中。... https:// $USERNAME : $PASSWORD@$USERNAME.cloudant.com ...这样的方式,用户名和密码仍然是能被显示看到。另外一种方法,使用hash的方法,将用户名和密码进行编码,生成更加安全访问的url。

HTTP

Cloudant使用HTTP协议与外部进行通信,不同的环境和客户端程序都对http的头部有一些影响,最好用户能自己指定。请求和回应中的头部,不太相同,不同属性设置不同部分。同时http回应中,会显示不同的状态码,显示这一次通信的结果。

Authentication:
当操作数据库时,特别是要改变数据库时,需要对该用户进行认证。有两种认证方式:基本认证和cookie认证。
- 基本认证。指每次要操作数据库时都需要将用户名和密码放入http头部的Authentication字段。Authentication的值以Base开头,后面加,对用户名:密码进行base64编码的结果。
- cookie认证。在一次会话开始的时候,以一定的格式发送用户名和密码,如果认证成功。服务器会在response中返回生成的cookie。一旦生成cookie之后,下次用户请求的时候,直接发送cookie,服务器识别cookie然后处理用户请求。用户注销之后,cookie也会失效。
cookie授权方法
生成cookie ,获得cookie,删除cookie

Authoritarian:
认证成功之后,需要对用户进行授权,是指用户能对数据库进行哪些操作。
authentication-role
查看有哪些用户,这些用户有哪些授权
https://$USERNAME.cloudant.com/_api/v2/db/$DATABASE/_security

0 0