根据指定的键名列表来批量设置指定KV存储空间的键值对,请求体最大支持100M。
接口说明
本接口与 BatchPutDcdnKv 的功能一样,只是允许上传更大请求体。当请求体较小时推荐直接使用 BatchPutDcdnKv 接口,从而减少服务端处理时间。本接口需要使用 SDK 进行调用。以 golang SDK 为例,需要使用 BatchPutDcdnKvWithHighCapacityAdvance 函数进行调用。
func TestBatchPutDcdnKvWithHighCapacity() 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([]*BatchPutDcdnKvRequestKvList, 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] = &BatchPutDcdnKvRequestKvList{
Key: &key,
Value: &value,
}
}
rawReq := BatchPutDcdnKvRequest{
Namespace: &namespace,
KvList: kvList,
}
payload, err := json.Marshal(rawReq)
if err != nil {
return err
}
// 如果 payload 大于 2M,则调用大容量接口进行上传
reqHighCapacity := BatchPutDcdnKvWithHighCapacityAdvanceRequest{
Namespace: &namespace,
UrlObject: bytes.NewReader(payload),
}
resp, err := cli.BatchPutDcdnKvWithHighCapacityAdvance(&reqHighCapacity, runtime)
if err != nil {
return err
}
return nil
}
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
dcdn:BatchPutDcdnKvWithHighCapacity | none | *全部资源 * |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
Namespace | string | 是 | 调用 PutDcdnKvNamespace 时指定的名称。 | test_namespace |
Url | string | 是 | 存储有需要批量设置的键值对的下载链接,此参数由调用 SDK 时自动生成,请使用 SDK 进行调用。 | https://xxxobject.oss-cn-reginon.aliyuncs.com/9d91_xxxxxxxxxxx_158bb6e0f97c477791209bb46bd599f7 |
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "EEEBE525-F576-1196-8DAF-2D70CA3F4D2F\n",
"FailKeys": [
"test_key1"
],
"SuccessKeys": [
"test_key2"
]
}
错误码
HTTP status code | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | Invalid.Parameter | The specified parameter is invalid. | 输入参数无效 |
400 | InvalidNameSpace.Malformed | The specified namespace is invalid. | namespace输入不对,比如输入为空 |
400 | InvalidAccount.Malformed | The specified account is invalid. | 账号输入不对,比如输入为空 |
400 | InvalidKey.Malformed | The specified key is invalid. | key输入不对,比如输入为空 |
400 | InvalidKey.ExceedsMaximum | The size of the key cannot exceed 512 bytes. | key长度不能超过512B |
400 | InvalidValue.ExceedsMaximum | The size of the value cannot exceed 2,000,000 bytes. | value长度不能越过2000000B |
400 | InvalidKey.TooManyKeys | request contains too many keys. | 单次请求包含过多数量的key |
403 | InvalidKey.ExceedsCapacity | The maximum capacity of a single namespace cannot exceed 1 GB. | namespace容量超过限制,单个namespace最大容量为1G |
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 | InvalidNameSpace.NotFound | The specified namespace does not exist. | namespace不存在 |
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|
暂无变更历史