Cloud Volumes API
透過Web UI提供的Cloud Volumes功能也可透過RESTful API取得。API可讓您建立及管理雲端磁碟區、並開發資源配置指令碼和工具。
尋找API URL、API金鑰和秘密金鑰
您需要取得Cloud Volumes API URL、API金鑰和Secret金鑰、才能執行API呼叫。
-
在儲存頁面或使用者名稱下的下拉式功能表中、按一下「* API access*(* API存取*)」。
-
記錄Cloud Volumes API URL、API金鑰和Secret金鑰。
列出可用的API
儲存頁面會顯示您可以使用的可用API。
-
按一下儲存頁面上的* API documentation *。
頁面會列出可用的API。
-
捲動頁面以查看可用的API。
API會依功能列出、例如:
-
《Volume》(Volume)
-
「我的最大目標」
-
《太老了》
-
"快照"
-
-
若要取得如何使用API呼叫的詳細資料和範例、請選取該功能、然後按一下下列其中一個動作:
-
「Get」:讀取
-
「POST」:建立
-
「PUT」:更新或修改
-
「刪除」:破壞
-
使用Cloud Volumes API
本節說明如何使用Cloud Volumes API。這些範例使用Linux Bash Shell的Curl。您需要將「<API_URL>'、「<API_key>'」和「<secret _key>'」取代為您從記錄的值 尋找API URL、API金鑰和秘密金鑰。
語法
'* curl -s -H Accept:application/json -H "Content-type: application/json"-H API-key:<API_key>-H secret key:<secret _key>-X [Get、POST、PUT、DELETE ]<API_URL>/v2/<command>*
範例
列出磁碟區
下列範例顯示所有磁碟區的相關資訊:
透過「jq」傳送命令可改善「json」輸出的格式。您可能需要在系統上安裝「jq」。 |
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Volumes | jq
列出特定Volume的詳細資料
每個Volume都有一個名為「volumeId」的ID、例如「07c9ab6c-b655-a9fe-f904-b9b97ef9baaa」。在API呼叫中包含ID、可提供特定Volume的詳細資料:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Volumes/<volumeId> | jq
建立Volume
以下範例使用「POST」呼叫、在「us-west-1」區域建立名為「Test」的Volume、其「分配容量」為100 GB、並使用「NFSv3」匯出:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes -d '
{
"name": "Test",
"creationToken": "grahams-test-volume3",
"region": "us-west-1",
"serviceLevel": "standard",
"quotaInBytes": 100000000000,
"exportPolicy": {"rules": [{"ruleIndex": 1,"allowedClients": "0.0.0.0/0","unixReadOnly": false,"unixReadWrite": true,"cifs": false,"nfsv3": true,"nfsv4": false}]},
"protocolTypes": ["NFSv3"],
"labels": ["test"]
}'
正在更新磁碟區
以下範例使用「PUT」呼叫來更新名為「Test」的磁碟區、將服務層級變更為「Extreme」、並將分配的容量變更為600 GB:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X PUT <api_url>/v2/Volumes/<volumeId> -d '
{
"serviceLevel": "extreme",
"quotaInBytes": 600000000000
}'
刪除Volume
以下範例使用「刪除」呼叫來刪除由「volumeId」指定的Volume:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X DELETE <api_url>/v2/Volumes/<volumeId>
請謹慎使用。此API呼叫會刪除Volume及其所有資料。 |
建立快照
以下範例使用「POST」呼叫來建立特定Volume的快照、稱為「快照」:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes/<volumeId>/Snapshots -d '
{
"name": "<snapshot-name>"
}'
建立快照原則
以下範例使用「PUT(放置))呼叫來建立特定磁碟區的快照原則:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X PUT <api_url>/v2/Volumes/<volumeId> -d '
{
"snapshotPolicy": {
"dailySchedule": {},
"enabled": true,
"hourlySchedule": {
"minute": 33,
"snapshotsToKeep": 24
},
"monthlySchedule": {},
"weeklySchedule": {}
}
}'
列出特定磁碟區的快照
以下範例使用「Get」(取得)呼叫來列出特定Volume的快照:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Volumes/<volumeId>/Snapshots
還原快照
以下範例使用「POST」呼叫、從「Snapshot Id」和「volumeId」指定的快照中還原磁碟區:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes/<volumeId>/Revert -d '
{
"snapshotId": "<snapshotId>"
}'
請謹慎使用。此API呼叫會導致在該快照日期之後寫入的任何資料遺失。 |
從快照建立新磁碟區
以下範例使用「POST」呼叫、根據「Snapshot Id」指定的現有磁碟區快照來建立新的磁碟區:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Volumes -d '
{
"snapshotId": "<snapshotId>",
"name": "Copy",
"creationToken": "perfectly-copied-volume",
"region": "us-west-1",
"serviceLevel": "extreme",
"protocolTypes": ["NFSv3"]
}'
刪除快照
以下範例使用「刪除」呼叫來刪除由「快照ID」指定的快照:
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X DELETE <api_url>/v2/Volumes/<volumeId>/Snapshots/<snapshotId>
請謹慎使用。此API呼叫會刪除快照及其所有資料。 |
加入目錄服務
下列範例使用「POST」通話來加入目錄服務、並提供DNS IP位址、網域、SMB伺服器的NetBios名稱、目錄服務管理員的使用者名稱和密碼、以及組織單位(選用、預設為CN=電腦)。
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X POST <api_url>/v2/Storage/ActiveDirectory -d '
{
"DNS": "<ip-address>",
"domain": "<domain>",
"netBIOS": "<netbios-name>",
"organizationalUnit": "OU=Cloud Servers,DC=nas-cloud,DC=local",
"password": "secret",
"region": "us-west-1",
"username": "Administrator"
}'
檢視目錄服務整合
以下範例使用「Get」呼叫來顯示目錄服務整合的組態。
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET <api_url>/v2/Storage/ActiveDirectory
取消加入目錄服務
以下範例使用「刪除」呼叫取消目錄服務整合。這需要目前加入的UUID、您可以使用上述的「Get」(取得)通話來找到。
您無法取消加入使用中的目錄服務;狀態為「使用中」。 |
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X DELETE <api_url>/v2/Storage/ActiveDirectory/<UUID>
取得效能統計資料
下列範例使用「Get」(取得)呼叫、針對「volumeId」指定的磁碟區、列出特定期間內的讀取和寫入IOPS、處理量及延遲統計資料。
curl -s -H accept:application/json -H "Content-type: application/json" -H api-key:<api_key> -H secret-key:<secret_key> -X GET '<api_url>/v2/Volumes/<volumeId>/PerformanceMetrics?startDate=2021-02-05T09:00&endDate=2021-02-05T09:05&type=READ_IOPS,WRITE_IOPS,TOTAL_THROUGHPUT,AVERAGE_OTHER_LATENCY'