cURL操作Openstack對(duì)象存儲(chǔ)的ReST API詳解
由于最近工作需要使用Openstack ,使用cURL操作Openstack對(duì)象存儲(chǔ)的ReST API,這是本人找了好多資料完成的,這里記錄下。
使用Openstack ,使用cURL操作Openstack對(duì)象存儲(chǔ)的ReST API
cURL 是一個(gè)利用URL語(yǔ)法規(guī)定來(lái)傳輸文件和數(shù)據(jù)的工具,支持很多協(xié)議,如HTTP、FTP、TELNET等。本文主要是介紹使用該工具和HTTP協(xié)議與swift服務(wù)如何交互。cURL允許你從命令行或shell腳本傳送和接收HTTP的請(qǐng)求和響應(yīng)。這使得直接與ReST的API工作而無(wú)需其他客服端APIs成為可能。本文,我們需要使用到以下的cURL命令行選項(xiàng):
-X METHOD 描述HTTP的請(qǐng)求方法(HEAD, GET等) -D Dump 將HTTP響應(yīng)頭部到stdout. -H HEADER 描述一個(gè)在請(qǐng)求中的HTTP\HTTPS頭部. -v 使用操作的過(guò)程更加詳細(xì)
1.認(rèn)證
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,我們首先需要獲得一個(gè)認(rèn)證令牌,用于傳給每個(gè)使用X-Auth-Token頭部的請(qǐng)求。以下的例子展示了如何使用cURL來(lái)獲得認(rèn)證令牌和存儲(chǔ)系統(tǒng)的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
運(yùn)行結(jié)果如下:
sting' http://127.0.0.1:8080/auth/v1.0 HTTP/1.1 200 OK X-Storage-Url: http://127.0.0.1:8080/v1/AUTH_test X-Storage-Token: AUTH_tkf828cc87bb9348168a52619b1f7e3928 X-Auth-Token: AUTH_tkf828cc87bb9348168a52619b1f7e3928 Content-Length: 0 Date: Fri, 07 Oct 2011 07:45:58 GMT
也可以使用-v選項(xiàng)來(lái)獲得更詳細(xì)的信息:
curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' http://127.0.0.1:8080/auth/v1.0
運(yùn)行結(jié)果如下:
* About to connect() to 127.0.0.1 port 8080 (#0) * Trying 127.0.0.1... connected * Connected to 127.0.0.1 (127.0.0.1) port 8080 (#0) > GET /auth/v1.0 HTTP/1.1 > User-Agent: curl/7.21.3 (i686-pc-linux-gnu) libcurl/7.21.3 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.18 > Host: 127.0.0.1:8080 > Accept: */* > X-Storage-User: test:tester > X-Storage-Pass: testing > < HTTP/1.1 200 OK < X-Storage-Url: http://127.0.0.1:8080/v1/AUTH_test < X-Storage-Token: AUTH_tkf828cc87bb9348168a52619b1f7e3928 < X-Auth-Token: AUTH_tkf828cc87bb9348168a52619b1f7e3928 < Content-Length: 0 < Date: Fri, 07 Oct 2011 07:48:30 GMT < * Connection #0 to host 127.0.0.1 left intact * Closing connection #0
存儲(chǔ)URL和認(rèn)證令牌作為響應(yīng)頭部返回。在認(rèn)證之后,你可以使用cURL來(lái)執(zhí)行存儲(chǔ)服務(wù)上的HEAD,GET,DELETE,POST和PUT請(qǐng)求。
2.確定存儲(chǔ)的使用情況
一個(gè)HEAD請(qǐng)求可以發(fā)送到存儲(chǔ)服務(wù)來(lái)確定你已經(jīng)在系統(tǒng)中存儲(chǔ)了多少數(shù)據(jù)以及你使用的容器數(shù)量。使用-X開(kāi)關(guān)來(lái)描述正確的HTTP方法和-D將HTTP響應(yīng)頭部輸出到終端(stdout)。
Exp2:查詢帳號(hào)的存儲(chǔ)使用情況
curl -X HEAD -D - \ -H "X-Auth-Token:AUTH_tkf828cc87bb9348168a52619b1f7e3928" \ http://127.0.0.1:8080/v1/AUTH_test
輸出如下:
HTTP/1.1 204 No Content X-Account-Object-Count: 3 X-Account-Bytes-Used: 92983 X-Account-Container-Count: 4 Accept-Ranges: bytes Content-Length: 0 Date: Fri, 07 Oct 2011 08:04:38 GMT
HTTP請(qǐng)求必須包含了一個(gè)頭部來(lái)描述認(rèn)證令牌。在響應(yīng)中的HTTP頭部顯示在該存儲(chǔ)帳號(hào)中的容器數(shù)量和整個(gè)帳號(hào)所存儲(chǔ)的總字節(jié)數(shù)。
3.創(chuàng)建一個(gè)存儲(chǔ)容器
在上傳任何數(shù)據(jù)到OpenStack的對(duì)象存儲(chǔ)之前,你必須創(chuàng)建一個(gè)存儲(chǔ)容器。你可以使用PUT請(qǐng)求來(lái)創(chuàng)建一個(gè)容器;cURL也可以用于該目的。
Exp3:創(chuàng)建一個(gè)photos的容器
curl -X PUT -D - -H "X-Auth-Token:AUTH_tkf828cc87bb9348168a52619b1f7e3928" http://127.0.0.1:8080/v1/AUTH_test/photos
運(yùn)行結(jié)果如下:
HTTP/1.1 201 Created Content-Length: 18 Content-Type: text/html; charset=UTF-8 Date: Fri, 07 Oct 2011 08:18:44 GMT
返回201(Created)的HTTP狀態(tài)代碼表示容器已被成功地創(chuàng)建。
4.上傳一個(gè)存儲(chǔ)對(duì)象
在創(chuàng)建完一個(gè)容器之后,你可以上傳一個(gè)本地文件。對(duì)于這個(gè)例子,我們上傳一張林志玲MM的照片。-T開(kāi)關(guān)描述到上傳的本地文件的完整路徑。
Exp4:上傳對(duì)象
curl -X PUT -T /home/swift/下載/lzl.jpg -D - \ -H "Content-Type: image/jpeg" \ -H "X-Auth-Token: AUTH_tkf828cc87bb9348168a52619b1f7e3928" \ -H "X-Object-Meta-lzl: 一張關(guān)于林志玲的美圖" \ http://127.0.0.1:8080/v1/AUTH_test/photos/lzl.jpg
結(jié)果如下:
HTTP/1.1 201 Created Content-Length: 118 Content-Type: text/html; charset=UTF-8 Etag: 870563216b9f54942fc09d574aa3e2bd Last-Modified: Fri, 07 Oct 2011 08:39:49 GMT Date: Fri, 07 Oct 2011 08:39:51 GMT
5.其他cURL命令
你可以使用cURL工具發(fā)出任何已定義的用于OpenStack對(duì)象存儲(chǔ)的ReST方法。例如,你可以使用cURL來(lái)發(fā)送POST和DELETE請(qǐng)求即使我們沒(méi)有提供的相關(guān)例子。比如,下載剛才上傳的照片:
curl -X GET -H "X-Auth-Token: AUTH_tkf828cc87bb9348168a52619b1f7e3928" http://127.0.0.1:8080/v1/AUTH_test/photos/lzl.jpg >td_lzl.jpg
注意:一般地,你每次調(diào)用curl來(lái)執(zhí)行一個(gè)操作,系統(tǒng)就會(huì)創(chuàng)建一個(gè)獨(dú)立的TCP/IP和SSL連接(https)然后丟棄。然而,使用語(yǔ)言的APIs是設(shè)計(jì)用來(lái)重用這些在操作之間的連接,因此提供了更好的細(xì)嫩。我們推薦在你的產(chǎn)品應(yīng)用中使用一種支持語(yǔ)言的APIs并且限制curl僅用來(lái)快速和簡(jiǎn)單地測(cè)試/診斷。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- CentOS系統(tǒng)中一鍵安裝Openstack圖文教程
- 一步一步教你安裝openstack(圖文)
- CentOS 6.4下安裝部署OpenStack云計(jì)算平臺(tái)的方法
- 什么是OpenStack 開(kāi)源的云計(jì)算管理平臺(tái)項(xiàng)目
- OpenStack安裝部署Liberty Neutron
- OpenStack 創(chuàng)建windows鏡像實(shí)現(xiàn)步驟
- OpenStack之虛機(jī)熱遷移的代碼詳細(xì)解析
- Openstack 創(chuàng)建項(xiàng)目和虛擬機(jī)詳細(xì)介紹
- OpenStack Identity(Keystone)身份服務(wù)、體系結(jié)構(gòu)與中間件講解
- OpenStack 中的Nova組件詳解
- OpenStack Heat AutoScaling詳解及實(shí)例代碼
相關(guān)文章
OpenStack Ceilometer用MongoDB解決占用磁盤(pán)空間過(guò)大問(wèn)題
這篇文章主要介紹了OpenStack Ceilometer用MongoDB解決占用磁盤(pán)空間過(guò)大問(wèn)題的相關(guān)資料,Ceilometer使用MongoDB作為數(shù)據(jù)庫(kù),不斷進(jìn)行采樣,導(dǎo)致數(shù)據(jù)量膨脹,占用過(guò)多的磁盤(pán)空間,這里提供解決辦法,需要的朋友可以參考下2016-12-12Openstack安裝過(guò)程中遇到的問(wèn)題匯總
本文給大家分享的是作者在Centos7中安裝openstack過(guò)程中出現(xiàn)的一些問(wèn)題的匯總,以及解決的方法,有需要的小伙伴可以參考下2017-04-04Openstack 節(jié)點(diǎn)維護(hù)詳細(xì)講解
這篇文章主要介紹了Openstack 節(jié)點(diǎn)維護(hù)詳細(xì)講解的相關(guān)資料,需要的朋友可以參考下2016-11-11Openstack 使用migrate進(jìn)行數(shù)據(jù)庫(kù)升級(jí)實(shí)現(xiàn)方案詳細(xì)介紹
這篇文章主要介紹了Openstack 使用migrate進(jìn)行數(shù)據(jù)庫(kù)升級(jí)詳細(xì)介紹的相關(guān)資料,數(shù)據(jù)庫(kù)表或者增加字段等是必然的事情,如何比較容易的進(jìn)行這些數(shù)據(jù)庫(kù)升級(jí)的適配和管理,這里提供實(shí)現(xiàn)方法,需要的朋友可以參考下2016-12-12java.util.ConcurrentModificationException 解決方法
這篇文章主要介紹了 java.util.ConcurrentModificationException 解決方法的相關(guān)資料,需要的朋友可以參考下2016-11-11openstack云計(jì)算keystone架構(gòu)源碼分析
這篇文章主要為大家介紹了openstack云計(jì)算keystone架構(gòu)源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04openstack云計(jì)算組件keystone部署及操作使用技巧
這篇文章主要為大家介紹了openstack云計(jì)算組件keystone部署及操作使用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04CentOS7.2部署OpenStack(一)—環(huán)境準(zhǔn)備
這篇文章主要介紹了CentOS7.2部署OpenStack(一)—環(huán)境準(zhǔn)備,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12