
# 发布数据集
#### 功能介绍
发布数据集。水印功能只支持"华北-北京四"区域
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=BCS&api=PublishDataset)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v1/datashare/dataset
#### 请求参数
表1请求Body参数 
| 参数            | 是否必选 | 参数类型                                               | 描述                                                                         |
|:---|:---|:---|:---|
| orgID         | 是    | String                                             | 组织id                                                                       |
| channelID     | 是    | String                                             | 通道id                                                                       |
| cryptoMethod  | 是    | String                                             | 加密方法，目前固定为SW                                                               |
| cert          | 是    | String                                             | 证书                                                                         |
| sk            | 是    | String                                             | 私钥                                                                         |
| timestamp     | 是    | String                                             | 时间戳                                                                        |
| provider      | 是    | String                                             | 数据发布者身份标识                                                                  |
| providerName  | 否    | String                                             | 数据发布者名称                                                                    |
| productName   | 是    | String                                             | 产品名称                                                                       |
| productID     | 是    | String                                             | 产品ID                                                                       |
| sampleUrl     | 是    | String                                             | 样例数据存放地址                                                                   |
| sampleSize    | 否    | String                                             | 样例数据大小                                                                     |
| sampleType    | 否    | String                                             | 样例数据类型                                                                     |
| sampleName    | 否    | String                                             | 样例数据名称                                                                     |
| fileType      | 否    | String                                             | 数据文件类型                                                                     |
| dataUrl       | 是    | String                                             | 数据存放地址                                                                     |
| dataHash      | 否    | String                                             | 数据哈希                                                                       |
| dataSize      | 否    | String                                             | 数据大小                                                                       |
| dataName      | 否    | String                                             | 数据名称                                                                       |
| description   | 否    | String                                             | 数据集描述信息，在使用abe加密时，需要对加密策略进行详细描述                                            |
| plainData     | 是    | String                                             | base64编码的明文数据                                                              |
| category      | 否    | String                                             | 加密类型，abe/symmetric，默认为symmetric，如果使用abe加密，则policy必填                        |
| watermarkType | 否    | String                                             | 水印类型，visible明水印，blind暗水印，嵌入水印时，必须填写；不填写时默认不嵌入水印。嵌入的水印内容为：发布人did_productID。 |
| file          | 否    | File                                               | 加水印的文件，当对文件加水印时，plainData无效果                                               |
| policy        | 否    | [policy] object | abe策略                                                                      |
   
 表2policy 
| 参数        | 是否必选 | 参数类型                                                                           | 描述          |
|:---|:---|:---|:---|
| Threshold | 是    | Integer                                                                        | 策略需要满足的属性阈值 |
| Children  | 是    | Array of [policy-children] objects | 子属性列表       |
   
 表3policy-children 
| 参数    | 是否必选 | 参数类型                                                                                                 | 描述                                                                                                                             |
|:---|:---|:---|:---|
| name  | 是    | String                                                                                               | 属性名                                                                                                                            |
| type  | 是    | String                                                                                               | 属性类型（plain，comparable和policy）                                                                                                  |
| value | 是    | [policy-children-comparablevalue] object | 属性值，根据type确定具体参数。 当type为plain时，value为string类型属性值。 当type为policy时，value为子policy。 当type为comparable时，value包含了op、value和maxValue三部分。 |
   
 表4policy-children-comparablevalue 
| 参数       | 是否必选 | 参数类型   | 描述                                 |
|:---|:---|:---|:---|
| op       | 否    | String | type为comparable时填写，比较类型符号（\>,\<或=） |
| value    | 是    | String | 比较类型属性值，必须为整数                      |
| maxValue | 否    | String | type为comparable时填写，比较类型中value上限值   |
   
#### 响应参数
**状态码： 200**
表5响应Body参数 
| 参数              | 参数类型                                                              | 描述         |
|:---|:---|:---|
| provider        | String                                                            | 数据集提供者身份标识 |
| providerName    | String                                                            | 数据集提供者名称   |
| productName     | String                                                            | 数据集产品名称    |
| productID       | String                                                            | 数据集产品id    |
| sampleUrl       | String                                                            | 样例数据url    |
| sampleSize      | String                                                            | 样例数据大小     |
| sampleType      | String                                                            | 样例数据类型     |
| sampleName      | String                                                            | 样例数据名称     |
| fileType        | String                                                            | 文件类型       |
| dataUrl         | String                                                            | 数据url      |
| dataHash        | String                                                            | 数据哈希值      |
| dataSize        | String                                                            | 数据大小       |
| dataName        | String                                                            | 数据名称       |
| description     | String                                                            | 数据描述       |
| price           | String                                                            | 数据价格       |
| encryptedAesKey | String                                                            | 密钥         |
| status          | String                                                            | 状态         |
| publishTime     | String                                                            | 数据发布时间     |
| dataFiles       | Array of [DataFile] objects | 数据文件列表     |
| sampleFiles     | Array of [DataFile] objects | 样例文件列表     |
| category        | String                                                            | 加密类型       |
| encryptData     | String                                                            | 加密后的数据     |
   
 表6DataFile 
| 参数       | 参数类型   | 描述    |
|:---|:---|:---|
| fileType | String | 文件类型  |
| dataUrl  | String | 数据url |
| dataHash | String | 数据哈希  |
| dataSize | String | 数据大小  |
| dataName | String | 数据名称  |
   
**状态码： 500**
表7响应Body参数 
| 参数        | 参数类型   | 描述   |
|:---|:---|:---|
| errorCode | String | 错误码  |
| errorMsg  | String | 错误描述 |
   
#### 请求示例
abe示例策略（policy）。该示例策略中，解密者需要符合属性att1=="hello"或符合子策略才能解密；解密者需要属性att3的值大于16才能符合子策略。
```
{
  "orgID" : "ce0ac69b0c8648cd25b44a551780409767c8890b",
  "channelID" : "mychannel",
  "cryptoMethod" : "SW",
  "cert" : "-----BEGIN CERTIFICATE-----\\n...\\n-----END CERTIFICATE-----",
  "sk" : "-----BEGIN PRIVATE KEY-----\\n...\\n-----END PRIVATE KEY-----",
  "timestamp" : "2020-10-27T17:28:16+08:00",
  "provider" : "did:example:DHkJjyD5wZwya6sd6BNBnG",
  "providerName" : "test",
  "productName" : "prodname",
  "productID" : "product2",
  "sampleUrl" : "http://hwcloud.com/sample.com/prodname2",
  "sampleSize" : "10KB",
  "sampleType" : "csv",
  "sampleName" : "data_sub1",
  "fileType" : "csv",
  "dataUrl" : "http://hwcloud.com/prodname2",
  "dataHash" : "2282ba7a1a2ef5700609214a997d3d4237a03bfd3632c6d089e57e7b6f467969",
  "dataSize" : "100MB",
  "dataName" : "mydata1",
  "description" : "this is my second prod",
  "plainData" : "base64 encoding string",
  "category" : "abe",
  "watermarkType" : "string",
  "file" : "string",
  "policy" : "{\"threshold\" : 1,\"children\" : [{\"name\" : \"att1\", \"type\" : \"plain\",\"value\" : \"hello\"}, {\"name\" : \"policy\", \"type\" : \"policy\",\"value\" : {\"Threshold\" : 1,\"Children\" : [{\"name\" : \"att3\", \"type\" :\"comparable\", \"value\" : {\"op\" : \">\", \"value\" : \"16\", \"maxValue\" : \"10000\"}}]}}]}"
}
```
#### 响应示例
**状态码： 200**
数据集信息
```
{
  "provider" : "did:example:DHkJjyD5wZwya6sd6BNBnG",
  "providerName" : "aws",
  "productName" : "prodname2",
  "productID" : "product2",
  "sampleUrl" : "http://hwcloud.com/sample.com/prodname2",
  "sampleSize" : "10KB",
  "sampleType" : "csv",
  "sampleName" : "data_sub1",
  "fileType" : "csv",
  "dataUrl" : "http://hwcloud.com/prodname2",
  "dataHash" : "2282ba7a1a2ef5700609214a997d3d4237a03bfd3632c6d089e57e7b6f467969",
  "dataSize" : "100MB",
  "dataName" : "mydata",
  "description" : "this is second prod",
  "price" : "0",
  "encryptedAesKey" : "BA4Ub3t3IskN8uKcEMa+4cbtsDS8OzF4V/qqb4OcPMeMvp7IL+HClzAbL6lPnhbDg/AnrStBlf0qFzRj+qvk6ZH0c7wP0aS48fSoNtecG79aFpFx0dg7rFdVYXWWzgeyI03eD3gFdXlQ/ovpxKJG5ALK39OCazUqDrawZHSDGyIlw0hGh88Q+GVORVSp+6V5Ag==",
  "status" : "ready",
  "publishTime" : "1607157244",
  "dataFiles" : [ {
    "fileType" : "csv",
    "dataUrl" : "http://hwcloud.com/prodname2",
    "dataHash" : "2282ba7a1a2ef5700609214a997d3d4237a03bfd3632c6d089e57e7b6f467969",
    "dataSize" : "100MB",
    "dataName" : "mydata"
  } ],
  "sampleFiles" : [ {
    "fileType" : "csv",
    "dataUrl" : "http://hwcloud.com/prodname2",
    "dataHash" : "2282ba7a1a2ef5700609214a997d3d4237a03bfd3632c6d089e57e7b6f467969",
    "dataSize" : "100MB",
    "dataName" : "mydata"
  } ],
  "category" : "string",
  "encryptData" : "string"
}
```
**状态码： 500**
失败响应
```
{
  "errorCode" : "BCS.5002046",
  "errorMsg" : "Incorrect number of arguments"
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 200 | 数据集信息 |
| 500 | 失败响应  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/devg-bcs/ErrorCode.html)。
