调用PutDataPipelineConfiguration接口创建一条数据管道(DataPipeline)规则。规则创建后,OSS 自动调用您的阿里云百炼对源 Bucket 中的原始数据进行向量化,并将生成的向量数据写入向量 Bucket 的指定 Index。
当前功能为白名单开放,需联系技术支持申请使用。
注意事项
单个阿里云账号(UID)在单个地域最多可创建 1000 条数据管道规则。
DataPipelineName 在同一账号、同一地域下必须唯一。
规则创建后不支持修改。如需调整配置,请删除后重新创建。
源端通用 Bucket、目标向量 Bucket 必须位于同一地域,数据管道不具备跨地域能力。
单条规则当前仅支持写入一张向量 Index(VectorIndexNames 为列表类型,为后续多表能力预留)。当目标 Index 写满后,规则会自动暂停(Paused)。
向量化调用的是您自己的阿里云百炼服务,Embedding 费用由百炼收取。
使用 RAM 子账号(而非主账号)操作 AI VibeFlow 时,需要提前完成以下权限配置。
请求语法
POST /?dataPipeline&action=putDataPipelineConfiguration&dataPipelineName=my-data-pipeline&role=acs:ram::<AccountId>:role/my-data-pipeline-role HTTP/1.1
Host: oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8" ?>
<DataPipelineConfiguration>
<DataPipelineDescription>使用百炼多模态模型为业务数据向量化</DataPipelineDescription>
<Sources>
<InputBucket>my-bucket</InputBucket>
<InputDataScope>All</InputDataScope>
<IgnoreDelete>true</IgnoreDelete>
<FilterConfiguration>
<PrefixSet>prefix1/</PrefixSet>
<PrefixSet>prefix2/prefix3/</PrefixSet>
<ObjectMediaTypes>text</ObjectMediaTypes>
<ObjectMediaTypes>image</ObjectMediaTypes>
<ObjectMediaTypes>video</ObjectMediaTypes>
</FilterConfiguration>
</Sources>
<DataPipelineEmbeddingConfiguration>
<EmbeddingProvider>bailian</EmbeddingProvider>
<ApiKey>sk-xxxx</ApiKey>
<Model>qwen2.5-vl-embedding</Model>
<FPS>1</FPS>
</DataPipelineEmbeddingConfiguration>
<Destination>
<VectorBucketName>my-vector-bucket</VectorBucketName>
<VectorIndexNames>my-index</VectorIndexNames>
<VectorKeyPrefix></VectorKeyPrefix>
<ObjectTagToMetadata>key1</ObjectTagToMetadata>
<ObjectTagToMetadata>key2</ObjectTagToMetadata>
<UsermetaToMetadata>x-oss-meta-key1</UsermetaToMetadata>
</Destination>
<DataPipelineError>
<ErrorMode>ignoreAndRecord</ErrorMode>
<ErrorBucket>my-error-bucket</ErrorBucket>
<ErrorPrefix>error-output/</ErrorPrefix>
</DataPipelineError>
</DataPipelineConfiguration>请求头
此接口仅涉及公共请求头。更多信息,请参见公共请求头(Common Request Headers)。
请求参数
请求中的 dataPipelineName 与 role 通过查询参数传入,其余配置通过请求体(XML)传入。
名称 | 类型 | 是否必选 | 描述 | 示例值 |
DataPipelineName | string | 是 | 规则名称。最多 64 个字符,支持大小写英文、数字、特殊字符(- _);一个账号在一个地域下创建的 Name 不可重复。 | my-data-pipeline |
role | string | 是 | 创建数据管道时所使用的角色,需具备源 Bucket、目标向量 Bucket 及可选错误输出 Bucket 的相关权限。 | acs:ram::<AccountId>:role/my-data-pipeline-role |
DataPipelineDescription | string | 否 | 规则描述。最多 200 个字符。 | 业务部门图片数据向量任务 |
Sources | 容器 | 是 | 数据源信息。当前仅支持一个 Source。 | - |
InputBucket | string | 是 | 存储原始数据的通用 Bucket 名称。父节点:Source。 | mybucket |
InputDataScope | string | 是 | 处理模式。取值:Historical(仅存量)、Incremental(仅增量)、All(存量+增量)。父节点:Source。 | All |
IgnoreDelete | bool | 否 | 删除 Object 时是否保留已写入的向量。true(默认):不删除向量;false:删除 Object 时同步删除对应向量。父节点:Source。 | true |
FilterConfiguration | 容器 | 否 | Object 筛选规则。不设置则对 Bucket 所有文件进行向量化。父节点:Source。 | - |
PrefixSet | []string | 否 | Object 前缀集,只有匹配该 Prefix 的 Object 才会被处理。单个最大长度 1023 字符,最多 1 个。父节点:FilterConfiguration。 | ["source/images/"] |
ObjectMediaTypes | []string | 否 | 要处理的 Object 类型,最多 3 个。可选:text(.txt .log .md .csv .json .xml .yaml .yml)、image、video(后缀需符合百炼模型要求)。父节点:FilterConfiguration。 | ["text", "image"] |
DataPipelineEmbeddingConfiguration | 容器 | 是 | 向量化配置。 | - |
EmbeddingProvider | string | 是 | 向量化来源,当前仅支持 bailian。父节点:DataPipelineEmbeddingConfiguration。 | bailian |
ApiKey | string | 是 | 阿里云百炼的 API Key。以 sk- 为前缀,长度 35~128,除前缀外仅含字母和数字。父节点:DataPipelineEmbeddingConfiguration。 | sk-xxxx |
Model | string | 是 | 百炼向量模型名称。父节点:DataPipelineEmbeddingConfiguration。 | qwen2.5-vl-embedding |
FPS | float | 否 | 视频向量化时百炼抽取视频的帧率,取值范围 (0,1],默认 1.0。父节点:DataPipelineEmbeddingConfiguration。 | 1 |
Destination | 容器 | 是 | 结果输出配置。 | - |
VectorBucketName | string | 是 | 存储向量数据的向量 Bucket 名称。父节点:Destination。 | my-vector-bucket |
VectorIndexNames | []string | 是 | 存储向量数据的向量 Index 名称列表,当前仅支持一个。父节点:Destination。 | ["my-index"] |
VectorKeyPrefix | string | 否 | 目标 vector key 命名方式。为空表示 vector key 与 object key 一致;非空时在 object key 前加该前缀。父节点:Destination。 | - |
ObjectTagToMetadata | []string | 否 | 将哪些 Object Tag 作为写入向量的元数据。父节点:Destination。 | ["tag1", "tag2"] |
UsermetaToMetadata | []string | 否 | 将哪些 user meta 作为写入向量的元数据。父节点:Destination。 | ["x-oss-meta-key1"] |
DataPipelineError | 容器 | 是 | 转换错误处理配置。说明:限流错误或 5xx 会无限重试,最短重试间隔 1s,最长 30m。 | - |
ErrorMode | string | 是 | Object 向量化失败的处理模式。取值:ignore(忽略)、ignoreAndRecord(忽略并记录失败信息到 ErrorBucket 的 ErrorPrefix 下)、abort(遇错即停)。父节点:DataPipelineError。 | ignoreAndRecord |
ErrorBucket | string | 否 | 错误输出 Bucket。ErrorMode=ignoreAndRecord 时必填,且不能与 Source Bucket 相同。父节点:DataPipelineError。 | my-error-bucket |
ErrorPrefix | string | 否 | 错误输出前缀。ErrorMode=ignoreAndRecord 时必填。若 object key = path/a.jpg 转换失败,将在 ErrorBucket 的 ErrorPrefix/<DataPipelineName>/path/a.jpg-<timestamp>.log 写入错误信息(含 ErrorCode、ErrorMessage、RequestId)。父节点:DataPipelineError。 | error-output/ |
响应头
此接口仅涉及公共响应头。更多信息,请参见公共响应头(Common Response Headers)。
示例
请求示例:
POST /?dataPipeline&action=putDataPipelineConfiguration&dataPipelineName=my-data-pipeline&role=acs:ram::<AccountId>:role/my-data-pipeline-role HTTP/1.1
Host: oss-cn-hangzhou.aliyuncs.com
Date: Thu, 11 Dec 2025 13:08:38 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********/20251211/cn-hangzhou/oss/aliyun_v4_request,Signature=********
Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8" ?>
<DataPipelineConfiguration>
<Sources>
<InputBucket>my-bucket</InputBucket>
<InputDataScope>All</InputDataScope>
</Sources>
<DataPipelineEmbeddingConfiguration>
<EmbeddingProvider>bailian</EmbeddingProvider>
<ApiKey>sk-xxxx</ApiKey>
<Model>qwen2.5-vl-embedding</Model>
</DataPipelineEmbeddingConfiguration>
<Destination>
<VectorBucketName>my-vector-bucket</VectorBucketName>
<VectorIndexNames>my-index</VectorIndexNames>
</Destination>
<DataPipelineError>
<ErrorMode>ignore</ErrorMode>
</DataPipelineError>
</DataPipelineConfiguration>返回示例:
HTTP/1.1 200 OK
x-oss-request-id: E71AFFDC-25BA-5C4C-AA5D-311029******
Date: Thu, 11 Dec 2025 13:08:38 GMT
Content-Type: application/xmlSDK
数据管道(DataPipeline)操作的各语言 SDK 示例,请参见创建数据管道(Java SDK V2)、创建数据管道(Go SDK V2)相关文档。
命令行工具ossutil
本接口对应的 ossutil 命令,请参见创建数据管道。
错误码
错误码 | HTTP状态码 | 描述 |
InvalidArgument | 400 | 请求提供的 DataPipelineConfiguration 参数不合法。例如:模型不支持 Index 的维度、模型不支持 ObjectMediaTypes、输入输出地域不一致。 |
DataPipelineConfigurationExceedLimit | 400 | 创建的数据管道数量达到上限。单个用户在一个地域最多创建 1000 个规则。 |
DataPipelineNameAlreadyExist | 409 | 指定的 DataPipelineConfiguration 已存在,无法重复创建。 |
AccessDenied | 403 | 发起请求时未传入用户验证信息,或没有操作权限。 |
QpsLimitExceeded | 429 | QPS 限流(请求速率受限)。当 HTTP 状态码为 5xx 时,可能在同一批请求中只有部分数据写入成功,写入不具备原子性。 |