Batch sets key-value pairs in a specified KV namespace based on a specified list of key names. The maximum request body size is 100 MB.
Operation description
This operation provides the same functionality as BatchPutKv, but allows you to upload a larger request body. If the request body is small, use the BatchPutKv operation directly to reduce server processing time. This operation must be called by using an SDK. Taking the Golang SDK as an example, call the BatchPutKvWithHighCapacityAdvance function.
func TestBatchPutKvWithHighCapacity() error {
// Configuration initialization
cfg := new(openapi.Config)
cfg.SetAccessKeyId("xxxxxxxxx")
cfg.SetAccessKeySecret("xxxxxxxxxx")
cli, err := NewClient(cfg)
if err != nil {
return err
}
runtime := &util.RuntimeOptions{}
// Construct the key-value pairs request for batch upload
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
}
// If the payload is larger than 2 MB, call the high-capacity operation to upload
reqHighCapacity := BatchPutKvWithHighCapacityAdvanceRequest{
Namespace: &namespace,
UrlObject: bytes.NewReader(payload),
}
resp, err := cli.BatchPutKvWithHighCapacityAdvance(&reqHighCapacity, runtime)
if err != nil {
return err
}
return nil
}
Try it now
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
esa:BatchPutKvWithHighCapacity |
none |
*All Resource
|
None | None |
Request parameters
|
Parameter |
Type |
Required |
Description |
Example |
| Namespace |
string |
Yes |
The name specified when you called CreateKvNamespace. |
test_namespace |
| Url |
string |
Yes |
A publicly accessible HTTP(S) URL that points to a JSON file containing the key-value pairs to be batch set. The server actively downloads the content from this URL.
The file content pointed to by the URL must be in the following JSON format: {"Namespace":"<namespace_name>","KvList":[{"Key":" |
https://xxxobject.oss-cn-region.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7 |
Response elements
|
Element |
Type |
Description |
Example |
|
object |
Schema of Response |
||
| RequestId |
string |
The request ID. |
EEEBE525-F576-1196-8DAF-2D70CA3F4D2F |
| FailKeys |
array |
The list of keys that failed to be written. |
|
|
string |
The key name that failed to be written. |
test_key1 |
|
| SuccessKeys |
array |
The list of keys that were written successfully. |
|
|
string |
The key name that was written successfully. |
test_key2 |
Examples
Success response
JSON format
{
"RequestId": "EEEBE525-F576-1196-8DAF-2D70CA3F4D2F",
"FailKeys": [
"test_key1"
],
"SuccessKeys": [
"test_key2"
]
}
Error codes
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | InvalidAccount.Malformed | The specified account is invalid. | The account number is not entered correctly, for example, the input is empty. |
| 400 | InvalidNameSpace.Malformed | The specified namespace is invalid. | The bucket name is entered incorrectly, such as an empty string. |
| 400 | InvalidKey.Malformed | The specified key is invalid. | Key name input error, such as entering an empty string. |
| 400 | InvalidKey.ExceedsMaximum | The size of the key cannot exceed 512 bytes. | The length of the requested key is too large. |
| 400 | InvalidValue.ExceedsMaximum | The size of the value cannot exceed 2,000,000 bytes. | The value deposited is too large. |
| 403 | InvalidKey.ExceedsCapacity | The maximum capacity of a single namespace cannot exceed 1 GB. | The capacity of the storage space exceeds the limit. |
| 403 | Unauthorized.InvalidParameters | The specified authentication parameters are invalid. | Authentication parameter input error. |
| 403 | Unauthorized.InvalidTime | The specified authentication time is invalid. | The authentication time parameter you entered is invalid. Check the parameter value and try again. |
| 403 | Unauthorized.InvalidToken | Token authentication failed. | The token you entered is invalid. Please check and enter the correct token and try again. |
| 404 | InvalidAccount.NotFound | The specified account does not exist. | The specified account does not exist. |
| 404 | InvalidNameSpace.NotFound | The specified namespace does not exist. | The specified namespace does not exist. |
| 404 | InvalidKey.NotFound | The specified key does not exist. | The specified key-value pair does not exist. |
| 406 | InvalidNameSpace.Duplicate | The specified namespace already exists. | Specified storage space |
| 406 | InvalidNameSpace.QuotaFull | The maximum number of namespaces is exceeded. | The number of storage spaces exceeds the capacity limit. |
| 429 | TooManyRequests | Too many requests are submitted. | Submissions are too frequent, please try again later |
| 429 | TooQuickRequests | Request for putting or deleting keys are frequently submitted. | The modification or deletion of key-value pairs is too frequent. |
See Error Codes for a complete list.
Release notes
See Release Notes for a complete list.