# 本地文件上传

用于创建/修改知识时,需要先把本地文件上传至腾讯云后,再将腾讯云上的文件位置与知识节点做关联

本页文档主要介绍如何把本地文件上传至腾讯云并获取state的步骤

state参数的使用请参照应用接口中模块接口的说明

# 第一步:获取签名

请求URL

POST https://lxapi.lexiangla.com/cgi-bin/v1/kb/files/upload-params

请求头

参数 是否必须 说明
Content-Type 固定值:"application/json; charset=utf-8"
Authorization 接口调用凭证 access_token
值格式:"Bearer access_token"
示例值:"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJS"
x-staff-id 成员帐号,作为文件上传者

其他说明

事项 说明
权限要求 知识库管理

请求参数

{
    "name": "测试.xlsx",
    "media_type": "file"
}

参数说明

参数 是否必须 默认值 说明
name 文件/视频/音频名称(需带拓展名)
media_type 获取签名的媒体类型, file/video/audio

响应

201 Created 状态码

{
    "options": {
        "Bucket": "lexiang4test-xxxxxxxx",
        "Region": "ap-shanghai"
    },
    "object":{
        "key": "company_xxx/2017/06/xx.json",
        "state": "f36e6cc7-e8af-45ed-8e83-5cdb2e44b28b",
        "headers": {
           "Content-Type": "application/octet-stream",
           "Content-Disposition": "attachment; filename=xx.json"
        },
        "auth": {
           "Authorization": "q-sign-algorithm=sha1&q-ak=xxxxxxxxxx",
           "XCosSecurityToken": "be449e692ad8c270abf3dca539ccb511069021ea30001"
        }
     }
}

# 第二步:上传到腾讯云

# 上传文件

腾讯云COS存储提供了用于上传文件到COS存储桶的各类接口。本文使用接口 putObject ,指引用户如何将文件直接上传到腾讯云。

腾讯云官方文档https://cloud.tencent.com/document/product/436/7749 (opens new window)

请求URL

PUT http://<bucket>.cos.<region>.myqcloud.com/<key>

参数说明

请求URL中:

参数名 是否必须 字段说明 备注
bucket 见第一部分响应参数中的object.options.bucket
region 见第一部分响应参数中的object.options.region
key 见第一部分响应参数中的object.key

示例:http://lexiang-10029162.cos.ap-shanghai.myqcloud.com/company_xx/files/2017/06/3c73103c-d053-11e8-b6ce-5254009b5a66.jpg

请求头中:

参数名 是否必须 字段说明 备注
Authorization 见第一部分响应参数中的objects.auth.Authorization
x-cos-security-token 见第一部分响应参数中的objects.auth.XCosSecurityToken
Content-Disposition 文件下载显示,见第一部分响应参数中的objects.headers.Content-Disposition

请求体中: 待上传文件的二进制流

curl示例

curl --request PUT 'http://lexiang-10029162.cos.ap-shanghai.myqcloud.com/company_xxx/files/2017/06/xx.json' \
--header 'Authorization: q-sign-algorithm=sha1&q-ak=xxx' \
--header 'x-cos-security-token: xxx' \
--header 'Content-Disposition: attachment; filename=xx.json' \
--data-binary '/xx.json'

响应说明

响应正常且响应头中有ETag字段即表示上传成功

使用第一步获取的state到应用接口中继续作为如参使用即可使文件与应用实体产生关联,注意尽快使用避免超时失效