2011年11月11日 星期五

jsp & servlet傳送中文檔名解決方法

jsp在超連結時需要用「URLEncoder.encode(chinese, "UTF-8")」將變數進行編碼

而在servlet的地方,因為收到了上面的編碼後,會在自動把它轉成中文,但有時候需要再做其他事請時就會發生錯誤,所以還需要用「URLEncoder.encode(filename, "iso-8859-1")」再做所需要的事情,這樣就不會錯誤了!

Openstack Object Storage 功能簡介(3)-Create Container

如需要建立container時需在curl打入以下指令

curl -k -v -X PUT -H "X-Storage-Token: AUTH_tkb1ee5e1e772844338056e029e9701070" https://192.168.0.1/v1/AUTH_system/photos

-X PUT:使用PUT指令


另外也可以輸入metadata 


curl -k -v -X PUT -H "X-Storage-Token: AUTH_tkb1ee5e1e772844338056e029e9701070" -H "X-Container-Meta-Creater: Jack" https://192.168.0.1/v1/AUTH_system/photos

注意:Metadata一定要以X-Container-Meta-為開頭,用於新創的container或現有的都可以

2011年11月9日 星期三

Openstack Object Storage 功能簡介(2)-List container

如需取得account下的container清單時,取在curl打入以下指令

curl -k -v -G -H "X-Storage-Token: AUTH_tkb1ee5e1e772844338056e029e9701070" https://192.168.0.1/v1/AUTH_system/
  1. -H代表給予Header的值
  2. -k代表把所有過程完整顯示出來
  3. -v代表同意不透過SSL認證
  4. -G代表get方法
  5. AUTH_system是我的account名稱
就會像下面出現container名稱
20110804 20110804-2 20111020 U22 U32 web

也可以加入需要的參數像format=xml

curl -k -v -G -H "X-Storage-Token: AUTH_tkb1ee5e1e772844338056e029e9701070" https://192.168.0.1/v1/AUTH_system/?format=xml
就會回應

<?xml version="1.0" encoding="UTF-8"?>
<account name="AUTH_system">
<container><name>20110804</name><count>5</count><bytes>257370550</bytes></container>
<container><name>20110804-2</name><count>0</count><bytes>0</bytes></container>
<container><name>20111020</name><count>0</count><bytes>0</bytes></container>
<container><name>U22</name><count>0</count><bytes>0</bytes></container>
<container><name>U32</name><count>0</count><bytes>0</bytes></container>
<container><name>web</name><count>0</count><bytes>0</bytes></container>
</account>
也可以輸出成format=json格式
[
{"name":"20110804","count":5,"bytes":257370550},
{"name":"20110804-2","count":0,"bytes":0},
{"name":"20111020","count":0,"bytes":0},
{"name":"U22","count":0,"bytes":0},
{"name":"U32","count":0,"bytes":0},
{"name":"web","count":0,"bytes":0}
]
另外如果限制要輸出幾個container的話最多可以輸出10000個,如果只想要10個的話可以最後面加入?limit=10就可以了
而不想從頭輸出也可以打?marker=U22,這樣就系統就會從U22的「下一筆」開始輸出資料了

2011年11月8日 星期二

Openstack Object Storage 功能簡介(1)-login

Openstack支援使用表徵狀態轉移ReST(Representational State Transer)來對系統下指令
使用 get、post、put、delete這四個指令對系統進行溝通,然後客戶端的應用通過URI來獲取資源的表徵。

URL的架構基本上是:ip/api version/account/container/object

輸入帳號密碼,通過認證後,取得Token,以後的任何動作都需用此Token完成
用curl這個軟體可以看出整個溝通的過程,例如打入以下指令:

curl -k -v -H "X-Storage-User: dev:user" -H "X-Storage-Pass:password" https://192.168.0.1/auth/v1.0

-H代表給予Header的值
-k代表把所有過程完整顯示出來
-v代表同意不透過SSL認證
實際帳號、密碼、URL請自己修改

結果為:

> GET /auth/v1.0 HTTP/1.1
> User-Agent: curl/7.21.7 (amd64-pc-win32) libcurl/7.21.7 OpenSSL/0.9.8r zlib/1.
2.5
> Host: 192.168.0.1
> Accept: */*
> X-Storage-User: dev:user
> X-Storage-Pass:password
>
< HTTP/1.1 200 OK
< X-Storage-Url: https://192.168.0.1/v1/AUTH_system
< X-Storage-Token: AUTH_tkb1ee5e1e772844338056e029e9701070
< X-Auth-Token: AUTH_tkb1ee5e1e772844338056e029e9701070
< Content-Length:0

接下就可以利用token對系統下其他指令了!