更新时间:2022-10-20 GMT+08:00

上传数据

功能介绍

本接口用于上传数据到DIS通道中。

URI

POST /v2/{project_id}/records

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

stream_name

String

已创建的通道名称。

最大长度:60

stream_id

String

通道唯一标识符。

当使用stream_name没有找到对应通道且stream_id不为空时,会使用stream_id去查找通道。

说明:

上传数据到被授权的通道时,必须配置此参数。

records

Array of PutRecordsRequestEntry objects

待上传的记录列表。

表4 PutRecordsRequestEntry

参数

是否必选

参数类型

描述

data

String

需要上传的数据。

上传的数据为序列化之后的二进制数据(Base64编码后的字符串)。

比如需要上传字符串“data”,“data”经过Base64编码之后是“ZGF0YQ==”。

explicit_hash_key

String

用于明确数据需要写入分区的哈希值,此哈希值将覆盖“partition_key”的哈希值。

取值范围:0~long.max

partition_id

String

通道的分区标识符。

可定义为如下两种样式:

  • shardId-0000000000

  • 0

比如一个通道有三个分区,那么分区标识符分别为0, 1, 2,或者shardId-0000000000, shardId-0000000001, shardId-0000000002

partition_key

String

数据将写入的分区。

说明:

如果传了partition_id参数,则优先使用partition_id参数。如果partition_id没有传,则使用partition_key。

响应参数

状态码: 200

表5 响应Body参数

参数

参数类型

描述

failed_record_count

Integer

上传失败的数据数量。

records

Array of PutRecordsResultEntry objects

上传结果列表。

表6 PutRecordsResultEntry

参数

参数类型

描述

partition_id

String

数据上传到的分区ID。

sequence_number

String

数据上传到的序列号。序列号是每个记录的唯一标识符。序列号由DIS在数据生产者调用PutRecords操作以添加数据到DIS数据通道时DIS服务自动分配的。同一分区键的序列号通常会随时间变化增加。PutRecords请求之间的时间段越长,序列号越大。

error_code

String

错误码。

error_message

String

错误消息。

请求示例

上传数据

POST https://{Endpoint}/v2/{project_id}/records

{
  "stream_name" : "newstream",
  "records" : [ {
    "data" : "MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTE="
  } ]
}

响应示例

状态码

状态码

描述

200

正常返回

错误码

请参见错误码