文本將介紹更新資料(add、delete)結構
URL
/update/$table_name/actions/bulk
$table_name 為執行個體id_表名,例如:執行個體id為ha-843qfng6ydhb ,表名為test,那麼table_name為ha-843qfng6ydhb_test
以上 URL 省略了請求Header參數及編碼等因素
以上 URL 中省略了訪問應用的 host 地址
支援格式
JSON
HTTP請求方式
POST
Header參數
參數 | 類型 | 描述 |
authorization | string | 簽名 |
X-Opensearch-Swift-PK-Field | string | 推送索引表主鍵,樣本:id |
host | string | 請求host,可在執行個體詳情>API入口>API網域名稱查看,樣本:ha-cn-**********.ha.aliyuncs.com |
簽名機制
可用以下方法計算簽名(authorization)
參數 | 類型 | 描述 |
accessUserName | string | 使用者名稱,可在執行個體詳情頁>網路資訊 查看 |
accessPassWord | string | 密碼,可在執行個體詳情頁>網路資訊 修改 |
import com.aliyun.darabonba.encode.Encoder;
import com.aliyun.darabonbastring.Client;
public class GenerateAuthorization {
public static void main(String[] args) throws Exception {
String accessUserName = "username";
String accessPassWord = "password";
String realmStr = "" + accessUserName + ":" + accessPassWord + "";
String authorization = Encoder.base64EncodeToString(Client.toBytes(realmStr, "UTF-8"));
System.out.println(authorization);
}
}
authorization正確返回格式
cm9vdDp******mdhbA==
注意:使用HTTP請求設定authorization參數是需加上Basic首碼
樣本:
authorization: Basic cm9vdDp******mdhbA==
文檔資料格式(body)
[
{
"cmd": "add",
"fields": {
"id": "1",
"title": "This is the title",
"body": "This is the body"
}
},
{
"cmd": "delete",
"fields": {
"id": "3"
}
}
]
cmd : 必選欄位。定義該文檔的操作行為,可以為“add”、“delete”。建議一個請求中進行批次更新操作,提高網路互動及處理效率。“add”表示新增文檔,如果該主鍵對應文檔已經存在,則執行先“delete”再“add”的操作;“delete”表示刪除文檔,如果該主鍵對應文檔已經不存在,則認為刪除成功。
fields : 必選欄位。要操作的文檔內容,主鍵欄位必選,系統所有操作都是通過主鍵來進行的。對於“delete”只需要提供文檔主鍵即可。
對於Array類型,需要使用JsonArray來處理,如[{“fields”: { “id”: “0”,”int_array”: [14,85],”string_array”: [“abc”,”xyz”]},”cmd”: “add”}];
注意:最外層是JsonArray類型,支援多個文檔大量操作。
樣本
請求:(此處省略了請求Header參數及編碼等因素)
http://ha-cn-**********.ha.aliyuncs.com/update/$table_name/actions/bulk
//下面的待上傳資料,需要放到body體中
[{
"cmd": "add",
"fields": {
"id": 1,
"name": "Test Data Push"
}
}]
成功返回
無任何返回參數說明推送成功
錯誤返回
[
{
"code": 3012,
"message": "Resource not found."
}
]
注意事項
使用API/SDK推送資料時,應用的欄位名稱大小寫不敏感。
使用API/SDK推送資料有次數及大小限制,不同應用限制不同,具體請參考系統限制描述。
資料上傳後請務必檢查傳回值,並對相關錯誤碼進行重試(尤其是3007錯誤),否則會出現資料丟失情況。同時,資料處理是非同步,系統返回“OK”後只表示系統接收資料成功,資料處理過程的錯誤會在控制台錯誤資訊中展示,請注意及時檢查。
POST的資料大小有限制,如果您上傳的文檔總量過大(編碼前2M),伺服器將拒絕接收任何參數,同時返回異常。