# 生成预签名上传地址

> 按文件大小申请一组分片上传用的预签名地址,每个分片一个地址。

POST
  `https://ikho.cn/developer/api/open/partner/files/upload/generate-presigned-urls`
  [试一试](/docs/embedded/playground/)

  
## 鉴权

  

  
    `Authorization`
    string
    header
    必填
    
  

  `Bearer` 加上用户访问令牌。

  

  

  
    `Content-Type`
    string
    header
    必填
    默认 `application/json`
  

  请求内容类型。

  

  
## 请求体

  

  
    `filesize`
    integer
    
    必填
    
  

  文件总大小,单位为字节。决定返回多少个分片。

  

  

  
    `filetype`
    string
    
    必填
    
  

  音频文件扩展名,取值 `mp3`、`m4a` 或 `wav`。

  

  
## 响应

  

  
    `FileId`
    string
    
    
    
  

  本次上传文件的标识,合并时需回传。

  

  

  
    `UploadId`
    string
    
    
    
  

  本次分片上传会话的标识,合并时需回传。

  

  

  
    `ChunkSize`
    integer
    
    
    
  

  每个分片的大小,单位为字节。文件应按此大小切片。

  

  

  
    `Parts`
    array
    
    
    
  

  分片列表,每个分片一个预签名地址。

  子属性
    

  
    `PartNumber`
    integer
    
    
    
  

  分片序号,从 1 开始。

  

    

  
    `PresignedUrl`
    string
    
    
    
  

  本平台分片直传端点。把该分片的原始字节带上用户令牌 `Bearer` 头直接 `PUT` 到此地址,本平台代理写入存储,再读取响应头里的 `ETag`。

  

  

  cURLPython
  

  

  bash
    
  

  
```
curl -X POST "https://ikho.cn/developer/api/open/partner/files/upload/generate-presigned-urls" \
  -H "Authorization: Bearer $USER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "filesize": 10485760,
    "filetype": "mp3"
  }'
```

  ts
    
  

  
```
import requests

resp = requests.post(
    "https://ikho.cn/developer/api/open/partner/files/upload/generate-presigned-urls",
    headers={
        "Authorization": "Bearer " + user_token,
        "Content-Type": "application/json",
    },
    json={"filesize": 10485760, "filetype": "mp3"},
)
plan = resp.json()
print(plan["ChunkSize"], len(plan["Parts"]))
```

  

  200 响应示例
    
  

  
```
{
  "FileId": "file_9f3c1a",
  "UploadId": "upload_7b2e5d",
  "ChunkSize": 5242880,
  "Parts": [
    { "PartNumber": 1, "PresignedUrl": "https://ikho.cn/developer/api/open/partner/files/file_9f3c1a/parts/1" },
    { "PartNumber": 2, "PresignedUrl": "https://ikho.cn/developer/api/open/partner/files/file_9f3c1a/parts/2" }
  ]
}
```
