All Products
Search
Document Center

Edge Security Acceleration:BatchPutKvWithHighCapacity

Last Updated:Jul 28, 2026

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

Try this API in OpenAPI Explorer, no manual signing needed. Successful calls auto-generate SDK code matching your parameters. Download it with built-in credential security for local usage.

Test

RAM authorization

The table below describes the authorization required to call this API. You can define it in a Resource Access Management (RAM) policy. The table's columns are detailed below:

  • Action: The actions can be used in the Action element of RAM permission policy statements to grant permissions to perform the operation.

  • API: The API that you can call to perform the action.

  • Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.

  • Resource type: The type of the resource that supports authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.

    • For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding Alibaba Cloud Resource Name (ARN) in the Resource element of the policy.

    • For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the Resource element of the policy.

  • Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys applicable across all RAM-supported services.

  • Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.

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.

  • If you use an SDK, the SDK automatically uploads the file and generates the URL.

  • In non-SDK scenarios, upload the JSON payload to any publicly accessible HTTP service and provide the URL.

The file content pointed to by the URL must be in the following JSON format: {"Namespace":"<namespace_name>","KvList":[{"Key":"","Value":""},...]}.If the URL content does not conform to this format, the API silently returns an empty SuccessKeys array.

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.