全部产品
Search
文档中心

边缘安全加速:BatchPutKvWithHighCapacity - 批量设置KV存储空间的大容量键值对

更新时间:Jun 25, 2026

根据指定的键名列表来批量设置指定KV存储空间的键值对,请求体最大支持100M。

接口说明

本接口与 BatchPutKv 的功能一样,只是允许上传更大请求体。当请求体较小时推荐直接使用 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
	}

	// 如果 payload 大于 2M,则调用大容量接口进行上传
	reqHighCapacity := BatchPutKvWithHighCapacityAdvanceRequest{
		Namespace: &namespace,
		UrlObject: bytes.NewReader(payload),
	}
	resp, err := cli.BatchPutKvWithHighCapacityAdvance(&reqHighCapacity, runtime)
	if err != nil {
		return err
	}
	return nil
}

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

当前API暂无授权信息透出。

请求参数

名称

类型

必填

描述

示例值

Namespace

string

调用 CreateKvNamespace 时指定的名称。

test_namespace

Url

string

包含待批量设置键值对的 JSON 文件的公网可访问 HTTP(S) URL,服务端会主动下载该 URL 内容。

  • 如使用 SDK,SDK 会自动上传文件并生成 URL。

  • 非 SDK 场景请将 JSON payload 上传到任意可公开访问的 HTTP 服务后填入该 URL。

URL 指向的文件内容必须为如下 JSON 格式:{"Namespace":"<命名空间名>","KvList":[{"Key":"","Value":""},...]}。若 URL 内容格式不符,API 将静默返回空的 SuccessKeys 数组。

https://xxxobject.oss-cn-region.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7

返回参数

名称

类型

描述

示例值

object

Schema of Response

RequestId

string

请求 ID。

EEEBE525-F576-1196-8DAF-2D70CA3F4D2F

FailKeys

array

写失败的键列表。

string

写失败的键名。

test_key1

SuccessKeys

array

写成功的键列表。

string

写成功的键名。

test_key2

示例

正常返回示例

JSON格式

{
  "RequestId": "EEEBE525-F576-1196-8DAF-2D70CA3F4D2F",
  "FailKeys": [
    "test_key1"
  ],
  "SuccessKeys": [
    "test_key2"
  ]
}

错误码

HTTP status code

错误码

错误信息

描述

400 InvalidAccount.Malformed The specified account is invalid. 账号输入不对,比如输入为空。
400 InvalidNameSpace.Malformed The specified namespace is invalid. 存储空间名输入错误,比如输入空字符串。
400 InvalidKey.Malformed The specified key is invalid. Key名输入错误,比如输入空字符串。
400 InvalidKey.ExceedsMaximum The size of the key cannot exceed 512 bytes. 请求的Key的长度过大。
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. 您输入的token无效,请检查并输入正确的token后进行重试。
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. 键值对的修改或者删除操作太频繁。

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情