指定されたキー名のリストに基づいて、指定された KV 名前空間にキーと値のペアをバッチセットします。最大リクエストボディサイズは 100 MB です。
操作説明
この操作は BatchPutKv と同じ機能を提供しますが、より large なリクエストボディを許可します。リクエストボディが small の場合は、 BatchPutKv 操作を使用してサーバー側の処理時間を短縮してください。この操作は SDK を使用して呼び出す必要があります。たとえば、Golang SDK を使用する場合は、BatchPutKvWithHighCapacityAdvance 関数を呼び出します。
func TestBatchPutKvWithHighCapacity() error {
// 構成を初期化します
cfg := new(openapi.Config)
cfg.SetAccessKeyId("xxxxxxxxx")
cfg.SetAccessKeySecret("xxxxxxxxxx")
cli, err := NewClient(cfg)
if err != nil {
return err
}
runtime := &util.RuntimeOptions{}.
// バッチアップロード用のキーと値のペアを構築します
namespace := "test_batch_put"
numKv := 10000
kvList := make([]*BatchPutKvRequestKvList, numKv)
test_value := strings.Repeat("a", 10*1024)
for i := 0; i < numKv; i++ {
key := fmt.Sprintf("test_key_%d", i)
value := test_value
kvList[i] = &BatchPutKvRequestKvList{
Key: &key,
Value: &value,
}
}
rawReq := BatchPutKvRequest{
Namespace: &namespace,
KvList: kvList,
}.
payload, err := json.Marshal(rawReq)
if err != nil {
return err
}.
// ペイロードが 2 MB より large の場合、大容量操作を呼び出してアップロードします
reqHighCapacity := BatchPutKvWithHighCapacityAdvanceRequest{
Namespace: &namespace,
UrlObject: bytes.NewReader(payload),
}
resp, err := cli.BatchPutKvWithHighCapacityAdvance(&reqHighCapacity, runtime)
if err != nil {
return err
}
return nil
}.
今すぐお試しください
テスト
RAM 認証
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| Namespace |
string |
必須 |
CreateKvNamespace を呼び出したときに指定した名前空間名。 |
test_namespace |
| Url |
string |
必須 |
バッチセットするキーと値のペアを含む JSON ファイルを指すパブリックアクセス可能な HTTP(S) URL。サーバーはこの URL からコンテンツを能動的にダウンロードします。
URL が指すファイルの内容は、次の JSON フォーマットである必要があります: {"Namespace":"<名前空間名>","KvList":[{"Key":"<キー>","Value":"<値>"},...]}.URL の内容がこのフォーマットと一致しない場合、API は空の SuccessKeys 配列をサイレントに返します。 |
https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7 |
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
object |
レスポンスのスキーマ。 |
||
| RequestId |
string |
リクエスト ID。 |
EEEBE525-F576-1196-8DAF-2D70CA3F4D2F |
| FailKeys |
array |
書き込みに失敗したキーのリスト。 |
|
|
string |
書き込みに失敗したキー名。 |
test_key1 |
|
| SuccessKeys |
array |
書き込みに成功したキーのリスト。 |
|
|
string |
書き込みに成功したキー名。 |
test_key2 |
例
成功レスポンス
JSONJSON
{
"RequestId": "EEEBE525-F576-1196-8DAF-2D70CA3F4D2F",
"FailKeys": [
"test_key1"
],
"SuccessKeys": [
"test_key2"
]
}
エラーコード
|
HTTP ステータスコード |
エラーコード |
エラーメッセージ |
説明 |
|---|---|---|---|
| 400 | InvalidAccount.Malformed | The specified account is invalid. | |
| 400 | InvalidNameSpace.Malformed | The specified namespace is invalid. | |
| 400 | InvalidKey.Malformed | The specified key is invalid. | |
| 400 | InvalidKey.ExceedsMaximum | The size of the key cannot exceed 512 bytes. | |
| 400 | InvalidValue.ExceedsMaximum | The size of the value cannot exceed 2,000,000 bytes. | |
| 403 | InvalidKey.ExceedsCapacity | The maximum capacity of a single namespace cannot exceed 1 GB. | |
| 403 | Unauthorized.InvalidParameters | The specified authentication parameters are invalid. | |
| 403 | Unauthorized.InvalidTime | The specified authentication time is invalid. | |
| 403 | Unauthorized.InvalidToken | Token authentication failed. | |
| 404 | InvalidAccount.NotFound | The specified account does not exist. | |
| 404 | InvalidNameSpace.NotFound | The specified namespace does not exist. | |
| 404 | InvalidKey.NotFound | The specified key does not exist. | |
| 406 | InvalidNameSpace.Duplicate | The specified namespace already exists. | |
| 406 | InvalidNameSpace.QuotaFull | The maximum number of namespaces is exceeded. | |
| 429 | TooManyRequests | Too many requests are submitted. | |
| 429 | TooQuickRequests | Request for putting or deleting keys are frequently submitted. |
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。