通過(guò)應(yīng)用開(kāi)發(fā)環(huán)境與OBS(Object-based Storage Service)對(duì)接,實(shí)現(xiàn)對(duì)象或者Widget資產(chǎn)存儲(chǔ)功能。
背景信息
對(duì)象存儲(chǔ)服務(wù)(Object-based Storage Service,OBS)是一個(gè)基于對(duì)象的海量存儲(chǔ)服務(wù),為客戶提供海量、安全、高可靠、低成本的數(shù)據(jù)存儲(chǔ)能力,包括:創(chuàng)建、修改、刪除桶,上傳、下載、刪除對(duì)象等。
在配置S3存儲(chǔ)功能章節(jié)我們介紹過(guò)如何對(duì)接Amazon S3,本節(jié)將介紹如何對(duì)接OBS。
兩者相同點(diǎn)如下:
- 兩者對(duì)接的應(yīng)用場(chǎng)景相同,都是為了實(shí)現(xiàn)對(duì)象或者Widget資產(chǎn)等的存儲(chǔ)功能。
- 兩者在應(yīng)用開(kāi)發(fā)環(huán)境上如何配置Connector的操作步驟相似。
兩者差異點(diǎn)如下:
- 在對(duì)接Amazon S3時(shí),您可以在Flow中調(diào)用Connector實(shí)現(xiàn)對(duì)接。
- 在對(duì)接OBS時(shí),您只能通過(guò)調(diào)用應(yīng)用開(kāi)發(fā)環(huán)境的Rest接口來(lái)調(diào)用Connector實(shí)現(xiàn)對(duì)接。
場(chǎng)景描述
向OBS中存儲(chǔ)“objectA.txt”文件。
前提條件
請(qǐng)獲取如下關(guān)鍵信息:
- 已獲取OBS用戶的訪問(wèn)密鑰 ID(Access key ID)和秘密訪問(wèn)密鑰(Secret access key)。
- 已獲取OBS服務(wù)的區(qū)域ID。
- 已在OBS上創(chuàng)建存儲(chǔ)桶(例如“bing.testonly.1”),用于后續(xù)存儲(chǔ)對(duì)象使用。
配置Connector操作步驟
- 在APP開(kāi)發(fā)界面左側(cè)列表單擊,選擇“連接 > 連接器”。
- 在Connectors配置界面中單擊“OBS”圖標(biāo),打開(kāi)Connector列表。
- 單擊“新建”。
- 輸入與OBS對(duì)接的參數(shù),單擊“下一步”。圖 1 新建Connector
表 1 新建Connector頁(yè)面參數(shù)說(shuō)明
參數(shù) | 說(shuō)明 |
---|---|
名稱 | Connector的名稱。示例: TestOBS |
訪問(wèn)密鑰 | OBS用戶的訪問(wèn)密鑰 ID(Access key ID)。 |
密鑰 | OBS用戶的秘密訪問(wèn)密鑰(Secret access key)。 |
賬號(hào)地區(qū) | OBS服務(wù)的區(qū)域ID。 |
內(nèi)容分發(fā)網(wǎng)絡(luò) | CDN服務(wù)器的地址。通過(guò)該配置,您后續(xù)訪問(wèn)上傳的靜態(tài)資源時(shí),可不用登錄OBS,直接通過(guò)CDN訪問(wèn)到靜態(tài)資源??蛇x配置。 |
描述 | Connector的描述信息。 |
5. 選擇存儲(chǔ)桶,用于選擇在OBS上哪個(gè)存儲(chǔ)桶上進(jìn)行存儲(chǔ),也可選擇多個(gè)桶進(jìn)行存儲(chǔ),這里選擇桶“bing.testonly.1”,單擊“保存”。
6. (可選)創(chuàng)建Connector后,您可進(jìn)行簡(jiǎn)單的測(cè)試,測(cè)試是否能在存儲(chǔ)桶上存儲(chǔ)對(duì)象。
說(shuō)明:
該測(cè)試只能上傳小于1MB字節(jié)的對(duì)象。
(1)在該Connector詳情頁(yè)面單擊存儲(chǔ)桶所在行的。
(2)單擊“點(diǎn)擊上傳”,選擇對(duì)象文件,單擊“上傳”。
圖 2 選擇對(duì)象
(3)單擊上傳好的文件名,進(jìn)行下載。打開(kāi)下載的對(duì)象存儲(chǔ)文件,查看與上傳的對(duì)象存儲(chǔ)文件是否一致。
調(diào)用Connector
1. 調(diào)用Rest接口,查詢出Connector ID,根據(jù)Connector ID,才能調(diào)用具體的Connector。其中IP和Port分別是應(yīng)用開(kāi)發(fā)環(huán)境的IP地址和對(duì)外服務(wù)端口號(hào)。
http://IP:Port/u-route/baas/sys/v1.0/connectors?type=obs
該接口用于查詢所有創(chuàng)建的OBS類型的Connector的ID。本示例中的查詢結(jié)果中,找出Connector名稱為“TestOBS”的Connector ID為“003W000000FfSV4F5twG”。接下來(lái)我們將根據(jù)這個(gè)ID,調(diào)用對(duì)接OBS的Connector“TestOBS”。
{
"resCode": "0",
"resMsg": "Success",
"result": [
{
"id": "003W000000FfSV4F5twG",
"name": "TestOBS",
"type": "obs",
"createdBy": "10gd000000En2xfeFqQy",
"createdDate": "2018-04-17 07:23:53",
"lastModifiedBy": "10gd000000En2xfeFqQy",
"lastModifiedDate": "2018-04-17 07:33:05",
"owner": "10gd000000En2xfeFqQy",
"accessKey": "0ZILHVIXUXXXXXXXXXX",
"secretKey": "O5ZeitY4dDQlCm4pJf8ow3BcoXXXXXXXXXX",
"rootRegion": "cn-south-1",
"buckets": [
{
"name": "bingo.testonly.1",
"region": "cn-south-1"
}
],
"createdBy.name": "Lily",
"lastModifiedBy.name": "Lily",
"owner.name": "Lily"
},
{
"id": "003W000000FfSYZ2NIHI",
"name": "TestB",
"type": "obs",
"createdBy": "10gd000000En2xfeFqQy",
"createdDate": "2018-04-17 07:24:41",
"lastModifiedBy": "10gd000000En2xfeFqQy",
"lastModifiedDate": "2018-04-17 07:24:41",
"owner": "10gd000000En2xfeFqQy",
"accessKey": "fdas",
"secretKey": "fdas",
"rootRegion": "fdsa",
"buckets": null,
"createdBy.name": "Lily",
"lastModifiedBy.name": "Lily",
"owner.name": "Lily"
}
]
}
2. 通過(guò)調(diào)用應(yīng)用開(kāi)發(fā)環(huán)境的Rest接口實(shí)現(xiàn)與OBS的對(duì)接。
Rest接口為:
http://IP:Port/u-route/baas/sys/v1.0/connectors/ConnectorID/action?type=obs&op=action&object=FileName&dir=DirName&bucket=BucketName
參數(shù)說(shuō)明如下:
- IP:應(yīng)用開(kāi)發(fā)環(huán)境的IP地址。
- Port:應(yīng)用開(kāi)發(fā)環(huán)境對(duì)外提供服務(wù)的端口號(hào)。
- ConnectorID:該Connector ID??赏ㄟ^(guò)上一步進(jìn)行查詢。
- action:具體的動(dòng)作。如下:listbuckets:列舉該存儲(chǔ)桶上所有對(duì)象文件。putobject:上傳對(duì)象文件。viewobject:查看對(duì)象文件。delobject:刪除對(duì)象文件。createdir:在存儲(chǔ)桶上創(chuàng)建文件目錄。listdir:列舉該文件目錄下所有文件。deldir:刪除目錄。
- FileName:待存儲(chǔ)到OBS上的文件名,請(qǐng)攜帶文件類型后綴??蛇x參數(shù),根據(jù)接口動(dòng)作進(jìn)行攜帶。
- DirName:存儲(chǔ)桶上的文件目錄名??蛇x參數(shù),根據(jù)接口動(dòng)作進(jìn)行攜帶。
- BucketName:存儲(chǔ)桶名稱??蛇x參數(shù),根據(jù)接口動(dòng)作進(jìn)行攜帶。
例如查看存儲(chǔ)桶“bingo.testonly.1”上存儲(chǔ)對(duì)象文件“ObjectA.txt”的Rest接口為:
http://10.136.104.56:21112/u-route/baas/sys/v1.0/connectors/003W000000FfSV4F5twG/action?type=obs&op=viewobject&object=ObjectA.txt&bucket=bingo.testonly.1