You need to enable JavaScript to run this app.
导航
上传文件
最近更新时间:2024.06.30 18:36:03首次发布时间:2024.06.30 18:36:03

请求说明

Path:/openapi/v1/app/{app_id}/tag/file/upload
Method: POST
Content-type: multipart/form-data; boundary=xxx

请求参数

Path-parameters: 参考公共参数即可

返回参数

Response:

{
    "code": 200,
    "message": "success",
    "data": {
        "all_count": 4,
        "load_count": 4,
        "file_key": "tag_upload_uuid/164314/20220527/564b19debe5a448396504802ab5ea69a.json",
        "deduplication_count": 0,
        "deduplication_list": []
    },
    "total_execute_time": null
}

使用multipart/form-data来进行上传文件,文件的field name固定为“file”,使用boundary来进行区分每一个field,boundary需要自定义,保证在请求内不重复即可。文件格式为csv,文件大小限制为 20M,数量上限为40W, 仅支持单个文件:

  • 第一行为表头:user_id,value,即用户id,用户对应的标签值
  • 从第二行开始是具体的数据
  • 如果是list的类型的话,多个value值以逗号分隔
  • 时间类型格式,参考“finder的时间类型属性”

样例:

user_id,value
a123456,value_a
b123456,value_b
c123456,value_c,value_c1

返回结果字段含义说明:
data 返回的是一个 JSON object, 针对关键字段进行说明

Field

Type

Description

all_count

int

总的行数

load_count

int

有效数据行数

file_key

string

保存到系统的文件名,创建的标签的时候需要使用到该参数

deduplication_count

int

重复数量

deduplication_list

array

重复的用户id(元素的类型为string)

请求示例

bc 为创建的 RangersClient, 其初始化请参考使用说明, 各语言的 SDK 都提供了类似的接口
调用(Python):

# 例如, 上传 user_tag.csv
method = 'POST'
service_url = '/datatag/openapi/v1/app/164314/tag/file/upload'
headers = {}  # headers 不需要显式添加'Content-Type'属性,否则会报错
files = {  # form-data 格式文件
    'file': ('user_tag.csv', open('user_tag.csv', 'rb'))  # key 必须为 'file',value 为上传的 csv 文件
}

resp = bc.request(method=method, service_url=service_url, headers=headers, files=files)
print(resp.content.decode('utf-8'))

调用(Java):

String method = "POST";
String serviceUrl = "/datatag/openapi/v1/app/164314/tag/file/upload";
HashMap<String, String> headers = null;
HashMap<String, String> params = null;
File file = new File("user_tag.csv");  // 换成指定文件的路径

String resp = bc.uploadFile(method, serviceUrl, headers, params, file);
System.out.println(resp);

调用(Go)

method := "POST"
serviceUrl := "/datatag/openapi/v1/app/164314/tag/file/upload"

fileDir, _ := os.Getwd()
fileName := "user_tag.csv"
filePath := path.Join(fileDir, fileName)

res, err := bc.UploadFile(method, serviceUrl, nil, nil, filePath)
if err != nil {
   fmt.Println(err)
   return
}
defer res.Body.Close()
data, err := ioutil.ReadAll(res.Body)
fmt.Println(err, string(data))

调用(nodejs)

let method = 'post'
let serviceUrl = '/datatag/openapi/v1/app/164314/tag/file/upload'

fileName = 'user_tag.csv'

resp = bc.uploadFile(serviceUrl, {
    method: method,
    file: fileName
}).then(res => res.json())
    .then(response => {
        console.log("response: " + JSON.stringify(response));
    })
    .catch(error => console.error('error:', error));

调用(php)

$method = 'post';
$serviceUrl = '/datatag/openapi/v1/app/164314/tag/file/upload';
$fileName = '/xxx/user_tag.csv';
$result = $this->client->uploadFile($serviceUrl, $method, null, null, $fileName);
echo $result;

返回示例

返回结果:

{
    "code": 200,
    "message": "success",
    "data": {
        "all_count": 4,
        "load_count": 4,
        "file_key": "tag_upload_uuid/164314/20220527/564b19debe5a448396504802ab5ea69a.json",
        "deduplication_count": 0,
        "deduplication_list": []
    },
    "total_execute_time": null
}