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 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 }