- CouchDB 教程
- CouchDB - 首页
- CouchDB - 简介
- CouchDB - 安装
- CouchDB - Curl 与 Futon
- CouchDB - HTTP API
- CouchDB - 创建数据库
- CouchDB - 删除数据库
- CouchDB - 创建文档
- CouchDB - 更新文档
- CouchDB - 删除文档
- CouchDB - 附加文件
- CouchDB 有用资源
- CouchDB - 快速指南
- CouchDB - 资源
- CouchDB - 讨论
CouchDB - Curl 与 Futon
cURL 工具
cURL 工具是一种与 CouchDB 通信的方式。
它是一个使用支持的协议(HTTP、HTTPS、FTP、FTPS、TFTP、DICT、TELNET、LDAP 或 FILE)从服务器传输数据到服务器或从服务器传输数据的工具。该命令旨在无需用户交互即可工作。cURL 提供了大量有用的技巧,例如代理支持、用户身份验证、FTP 上传、HTTP post、SSL (https:) 连接、Cookie、文件传输恢复等等。
cURL 工具可在 UNIX、Linux、Mac OS X 和 Windows 等操作系统中使用。它是一个命令行工具,用户可以使用它直接从命令行访问 HTTP 协议。本章将教你如何使用 cURL 工具。
使用 cURL 工具
您可以通过简单地键入 cURL 后跟网站地址来访问任何网站,如下所示:
curl www.tutorialspoint.com/
默认情况下,cURL 工具返回请求页面的源代码。它在终端窗口中显示此代码。
cURL 工具选项
cURL 工具提供各种选项可以使用,您可以在 cURL 工具帮助中看到它们。
以下代码显示了 cURL 帮助的一部分。
$ curl --help Usage: curl [options...] <url> Options: (H) means HTTP/HTTPS only, (F) means FTP only --anyauth Pick "any" authentication method (H) -a/--append Append to target file when uploading (F/SFTP) --basic Use HTTP Basic Authentication (H) --cacert <file> CA certificate to verify peer against (SSL) -d/--data <data> HTTP POST data (H) --data-ascii <data> HTTP POST ASCII data (H) --data-binary <data> HTTP POST binary data (H) --data-urlencode <name=data/name@filename> HTTP POST data urlencoded (H) --delegation STRING GSS-API delegation permission --digest Use HTTP Digest Authentication (H) --disable-eprt Inhibit using EPRT or LPRT (F) --disable-epsv Inhibit using EPSV (F) -F/--form <name=content> Specify HTTP multipart POST data (H) --form-string <name=string> Specify HTTP multipart POST data (H) --ftp-account <data> Account data to send when requested by server (F) --ftp-alternative-to-user <cmd> String to replace "USER [name]" (F) --ftp-create-dirs Create the remote dirs if not present (F) --ftp-method [multi cwd/no cwd/single cwd] Control CWD usage (F) --ftp-pasv Use PASV/EPSV instead of PORT (F) -G/--get Send the -d data with a HTTP GET (H) -H/--header <line> Custom header to pass to server (H) -I/--head Show document info only -h/--help This help text --hostpubmd5 <md5> Hex encoded MD5 string of the host public key. (SSH) -0/--http1.0 Use HTTP 1.0 (H) --ignore-content-length Ignore the HTTP Content-Length header -i/--include Include protocol headers in the output (H/F) -M/--manual Display the full manual -o/--output <file> Write output to <file> instead of stdout --pass <pass> Pass phrase for the private key (SSL/SSH) --post301 Do not switch to GET after following a 301 redirect (H) --post302 Do not switch to GET after following a 302 redirect (H) -O/--remote-name Write output to a file named as the remote file --remote-name-all Use the remote file name for all URLs -R/--remote-time Set the remote file's time on the local output -X/--request <command> Specify request command to use --retry <num> Retry request <num> times if transient problems occur --retry-delay <seconds> When retrying, wait this many seconds between each --retry-max-time <seconds> Retry only within this period -T/--upload-file <file> Transfer <file> to remote site --url <URL> Set URL to work with -B/--use-ascii Use ASCII/text transfer
与 CouchDB 通信时,广泛使用了 cURL 工具的某些选项。以下是 cURL 工具的一些重要选项(包括 CouchDB 使用的选项)的简要说明。
-X 标志
(HTTP) 指定与 HTTP 服务器通信时使用的自定义请求方法。使用指定的请求代替否则使用的(默认为 GET)方法。阅读 HTTP 1.1 规范以获取详细信息和解释。
(FTP) 指定在使用 ftp 执行文件列表时使用的自定义 FTP 命令,而不是 LIST。
-H
(HTTP) 获取网页时使用额外标头。请注意,如果您添加的自定义标头与 cURL 将使用的内部标头之一具有相同的名称,则将使用您外部设置的标头代替内部标头。这允许您进行比 cURL 通常所能做的更复杂的处理。如果不完全了解自己在做什么,则不应替换内部设置的标头。用右侧冒号后没有内容的标头替换内部标头将阻止该标头出现。
cURL 确保您添加/替换的每个标头都以正确的行尾标记发送。您不应将其作为标头内容的一部分添加,也不应添加换行符或回车符来扰乱顺序。
另请参见 -A/--user-agent 和 -e/--referer 选项。
此选项可以多次使用以添加/替换/删除多个标头。
-d 标志
使用 cURL 的此标志,您可以将数据与 HTTP POST 请求一起发送到服务器,就像用户在表单中填写并提交数据一样。
示例
假设有一个网站,您想登录到它或使用 cURL 工具的 –d 标志向网站发送一些数据,如下所示。
curl -X PUT http://mywebsite.com/login.html -d userid=001 -d password=tutorialspoint
它发送一个看起来像 **"userid=001&password=tutorialspoint"** 的 post 块。同样,您也可以使用 -d 标志发送文档(JSON)。
-o 标志
使用此标志,cURL 将请求的输出写入文件。
示例
以下示例显示了 cURL 工具 **-o** 标志的使用。
$ curl -o example.html www.tutorialspoint.com/index.htm % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 81193 0 81193 0 0 48168 0 --:--:-- 0:00:01 --:--:-- 58077
这将获取 tutorialspoint.com 首页的源代码,创建一个名为 example.com 的文件,并将输出保存到名为 example.html 的文件中。
以下是 **example.html** 的快照。
-O
此标志类似于 **–o**,唯一的区别是使用此标志,将创建一个与请求的 url 同名的文件,并将请求的 url 的源代码复制到其中。
示例
以下示例显示了 cURL 工具 **-O** 标志的使用。
$ curl -O www.tutorialspoint.com/index.htm % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 81285 0 81285 0 0 49794 0 --:--:-- 0:00:01 --:--:-- 60077
它创建一个名为 index.htm 的新文件,并将 tutorialspoint.com 首页的源代码保存在其中。
你好 CouchDB
您可以通过向已安装的 CouchDB 实例发送 GET 请求来访问 CouchDB 的主页。首先,确保您已在 Linux 环境中安装 CouchDB 并成功运行,然后使用以下语法向 CouchDB 实例发送 GET 请求。
curl http://127.0.0.1:5984/
这将为您提供一个 JSON 文档,如下所示,其中 CouchDB 指定了详细信息,例如版本号、供应商名称和软件版本。
$ curl http://127.0.0.1:5984/ { "couchdb" : "Welcome", "uuid" : "8f0d59acd0e179f5e9f0075fa1f5e804", "version" : "1.6.1", "vendor" : { "name":"The Apache Software Foundation", "version":"1.6.1" } }
所有数据库列表
您可以通过发送带有字符串 **"_all_dbs 字符串"** 的 GET 请求来获取所有已创建数据库的列表。以下是获取 CouchDB 中所有数据库列表的语法。
curl -X GET http://127.0.0.1:5984/_all_dbs
它将为您提供 CouchDB 中所有数据库的列表,如下所示。
$ curl -X GET http://127.0.0.1:5984/_all_dbs [ "_replicator" , "_users" ]
创建数据库
您可以使用带有 PUT 标头的 cURL 在 CouchDB 中创建数据库,语法如下:
$ curl -X PUT http://127.0.0.1:5984/database_name
示例
例如,使用上面给出的语法创建一个名为 **my_database** 的数据库,如下所示。
$ curl -X PUT http://127.0.0.1:5984/my_database {"ok":true}
验证
通过列出所有数据库来验证是否已创建数据库,如下所示。在这里您可以看到列表中新创建的数据库名称 **"my_database"**。
$ curl -X GET http://127.0.0.1:5984/_all_dbs [ "_replicator " , "_users" , "my_database" ]
获取数据库信息
您可以使用 GET 请求和数据库名称来获取有关数据库的信息。以下是获取数据库信息的语法。
示例
例如,让我们获取名为 **my_database** 的数据库的信息,如下所示。在这里您可以获得有关数据库的信息作为响应。
$ curl -X GET http://127.0.0.1:5984/my_database { "db_name" : "my_database", "doc_count" : 0, "doc_del_count" : 0, "update_seq" : 0, "purge_seq" : 0, "compact_running" : false, "disk_size" : 79, "data_size" : 0, "instance_start_time" : "1423628520835029", "disk_format_version" : 6, "committed_update_seq" : 0 }
Futon
Futon 是 CouchDB 内置的基于 Web 的管理界面。它提供了一个简单的图形界面,您可以使用它与 CouchDB 交互。它是一个简单的界面,可以完全访问所有 CouchDB 功能。以下是这些功能的列表:
数据库:- 创建数据库。
- 销毁数据库。
- 创建文档。
- 更新文档。
- 编辑文档。
- 删除文档。
启动 Futon
确保 CouchDB 正在运行,然后在浏览器中打开以下 url:
http://127.0.0.1:5984/_utils/
如果您打开此 url,它将显示 Futon 首页,如下所示:
在此页面的左侧,您可以看到 CouchDB 所有当前数据库的列表。在此示例中,我们有一个名为 **my_database** 的数据库,以及系统定义的数据库 **_replicator** 和 **_user**。
在右侧,您可以看到以下内容:
**工具** - 在此部分中,您可以找到 **配置** 以配置 CouchDB,**复制器** 以执行复制,以及 **状态** 以验证 CouchDB 的状态和最近对 CouchDB 进行的修改。
**文档** - 此部分包含 CouchDB 最新版本的完整文档。
**诊断** - 在此下,您可以验证 CouchDB 的安装。
**最近的数据库** - 在此下,您可以找到最近添加的数据库的名称。