# uploadFile

> 本接口应在服务器端调用，详细说明参见[服务端API](/miniprogram/dev/server/getting_started/api_signature.md)。

获取文件上传链接

### 请求地址
```
POST https://api.weixin.qq.com/tcb/uploadfile?access_token=ACCESS_TOKEN
```

### 请求参数

| 属性 | 类型 | 默认值 | 必填 | 说明 |
| ---- | ---- | ------ | -------- | ---- |
| access_token / cloudbase_access_token | string |  | 是 | [接口调用凭证](/minigame/dev/wxcloud/reference-http-api/functions/invokeCloudFunction) |
| env | string |  | 是 | 云环境ID |
| path | string |  | 是 | 上传路径 |

### 返回值

### Object

返回的 JSON 数据包

| 属性 | 类型 | 说明 |
| ---- | ---- | ---- |
| errcode  | number | 错误码 |
| errmsg  | string | 错误信息 |
| url  | string | 上传url |
| token  | string | token |
| authorization  | string | authorization |
| file_id  | string | 文件ID |
| cos_file_id  | string | cos文件ID |

**errcode 的合法值**

| 值 | 说明 | 最低版本 |
| -- | ---- | ---- |
| 0 | 请求成功 |  |
| -1 | 系统错误 |  |
| -1000 | 系统错误 |  |
| 40014 | AccessToken 不合法 |  |
| 40097 | 请求参数错误 |  |
| 40101 | 缺少必填参数 |  |
| 41001 | 缺少AccessToken |  |
| 43002 | HTTP METHOD 错误 |  |
| 44002 | POST BODY 为空 |  |
| 47001 | POST BODY 格式错误 |  |
| 85088 | 该APP未开通云开发 |  |
| 其他错误码 | [云开发错误码](/minigame/dev/wxcloud/reference/errcode) |  |

### 请求数据示例

```json
{
	"env": "test2-4a89da",
	"path": "this/is/a/example/file.path"
}
```

### 返回数据示例

```json
{
    "errcode": 0,
    "errmsg": "ok",
    "url": "https://cos.ap-shanghai.myqcloud.com/7465-test2-4a89da-1258717764/testupload",
    "token": "Cukha70zkXIBqkh1OhUIFqjUmXLXeSWq7dff61099221bb270522b8e0cf21d72e0aWCfGXEIDT5bKVJgykFFr9_MeQ-ExrsZ8oiFdMwyYag8h0r-EJq_EaO94KzksxH6bAeb4Y7SwZjJqoy_4g1Na797F1IEG9Dnstm_rz02AgaP5HbJwt1P-XHT4Xjw_lafla079gtQKAP-EPbE5Tc8BRXIm32esjGDDDuDyml7IJqbsPolYZ4-CHQsisdx488loGAN4f7YRMkrrP1Pgi5XOm0-iG5HbWd3tHtuE2pzsGkTobO_fyz2PfSPaeUt_735ll38yIWpAFESAsZnBj2DcRSPBT2FJ_s5mOZACS53q6-tWXPO0AR3-EhOCQpiDKsldVsCxz00Uwhgm1T6Ozw777fJEFkUIngUdZ5yajy3LA84Mpfu6CLkFjfiBtz3wpmcCQxhijo_CrVHkmaMc2JBQ",
    "authorization": "q-sign-algorithm=sha1&q-ak=AKID98EDB528Sfqerp0Z_7l23we-u4Avrx04te9VvlzGihMTseysMgu7iSdh_hxEnoAy&q-sign-time=1557307130;1557308030&q-key-time=1557307130;1557308030&q-header-list=&q-url-param-list=&q-signature=ac95227b67a04157bb5e49b435c6ac3ce88e03f2",
    "file_id": "cloud://test2-4a89da.7465-test2-4a89da-1258717764/testupload",
    "cos_file_id": "HDze32/qZENCwWi5N5akgoXSv3U8DsccKaqCxTMGs0zFgvlD28j484/VYFPJ1l2QDh0Qy8wNbQCpxs5zEsLJln1lIY9RGYn1LzRQQQYFQm+Xwvw6S4YEZN1AIwY906mwIBgiI3gKGkU2K1+1ZEnEYEM4Uh/C1JxB4Q=="
}
```

### 上传链接使用说明

用户获取到返回数据后，需拼装一个 HTTP POST 请求，其中 url 为返回包的 url 字段，Body 部分格式为 multipart/form-data，具体内容如下：
| key | value | 说明 |
| --- | --- | --- |
| key | this/is/a/example/file.path | 请求包中的 path 字段 |
| Signature | q-sign-algorithm=sha1&q-ak=AKID9... | 返回数据的 authorization 字段 |
| x-cos-security-token | Cukha70zkXIBqkh1Oh... | 返回数据的 token 字段 |
| x-cos-meta-fileid | HDze32/qZENCwWi5... | 返回数据的 cos_file_id 字段 |
| file | 文件内容 | 文件的二进制内容 |
