使用cURL操作Openstack对象存储的ReST APIcURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。本文主要是介绍使用该工具和HTTP协议与 swift服务如何交互。cURL允许你从命令行或shell脚本传送和接收HTTP的请求和响应。这使得直接与ReST的API工作而无需其他客服端 APIs成为可能。本文,我们需要使用到以下的cURL命令行选项:
-X METHOD 描述HTTP的请求方法(HEAD, GET等) 1.认证In order to use the ReST API, you will first need to obtain a authorization token, which will need to be passed in for each request using the X-Auth-Token header. The following example demonstrates how to use cURL to obtain the authorization token and the URL of the storage system. 为了使用ReST的API,我们首先需要获得一个认证令牌,用于传给每个使用X-Auth-Token头部的请求。以下的例子展示了如何使用cURL来获得认证令牌和存储系统的URL。 Exp1:获得X-Storage-Url和X-Auth-Token
curl -D- -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://127.0.0.1:8080/auth/v1.0 运行结果如下:
也可以使用-v选项来获得更详细的信息: curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://127.0.0.1:8080/auth/v1.0 运行结果如下:
存储URL和认证令牌作为响应头部返回。在认证之后,你可以使用cURL来执行存储服务上的HEAD,GET,DELETE,POST和PUT请求。
2.确定存储的使用情况一个HEAD请求可以发送到存储服务来确定你已经在系统中存储了多少数据以及你使用的容器数量。使用-X开关来描述正确的HTTP方法和-D将HTTP响应头部输出到终端(stdout)。 Exp2:查询账号的存储使用情况 curl -X HEAD -D - \ 输出如下:
HTTP请求必须包含了一个头部来描述认证令牌。在响应中的HTTP头部显示在该存储账号中的容器数量和整个账号所存储的总字节数。 3.创建一个存储容器在上传任何数据到OpenStack的对象存储之前,你必须创建一个存储容器。你可以使用PUT请求来创建一个容器;cURL也可以用于该目的。 Exp3:创建一个photos的容器 curl -X PUT -D - -H "X-Auth-Token:AUTH_tkf828cc87bb9348168a52619b1f7e3928" http://127.0.0.1:8080/v1/AUTH_test/photos 运行结果如下:
返回201(Created)的HTTP状态代码表示容器已被成功地创建。 4.上传一个存储对象在创建完一个容器之后,你可以上传一个本地文件。对于这个例子,我们上传一张林志玲MM的照片。-T开关描述到上传的本地文件的完整路径。 Exp4:上传对象 curl -X PUT -T /home/swift/下载/lzl.jpg -D - \ 结果如下:
5.其他cURL命令你可以使用cURL工具发出任何已定义的用于OpenStack对象存储的ReST方法。例如,你可以使用cURL来发送POST和DELETE请求即使我们没有提供的相关例子。比如,下载刚才上传的照片: curl -X GET -H "X-Auth-Token: AUTH_tkf828cc87bb9348168a52619b1f7e3928" http://127.0.0.1:8080/v1/AUTH_test/photos/lzl.jpg >td_lzl.jpg 注意:一般地,你每次调用curl来执行一个操作,系统就会创建一个独立的TCP/IP和SSL连接(https)然后丢弃。然而,使用语言的 APIs是设计用来重用这些在操作之间的连接,因此提供了更好的细嫩。我们推荐在你的产品应用中使用一种支持语言的APIs并且限制curl仅用来快速和 简单地测试/诊断。 |
|