单文件上传
直接上传单个文件,适用于小文件。
基本信息
| 项目 | 值 |
|---|---|
| 方法 | POST |
| 路径 | {globalDomain}/ous/api/v2/single/upload |
| 认证 | ous-token-v2 |
| Content-Type | multipart/form-data |
说明
globalDomain 和 ousToken 从 获取上传 Token 接口返回。
Request
Query Param
| 参数 | 必须 | 类型 | 说明 |
|---|---|---|---|
file | ✅ | MultipartFile | 文件内容 |
md5 | ✅ | string | 文件 MD5 值 |
metadata | ❌ | string | 元数据 |
customPrefix | ❌ | string | 自定义存储前缀 |
customFilename | ❌ | string | 自定义文件名 |
Example
bash
curl -X POST 'https://{globalDomain}/ous/api/v2/single/upload' \
-H 'ous-token-v2: {ousToken}' \
-F 'file=@/path/to/image.jpg' \
-F 'md5=c2ce57814593ae4e9fa8f1f473a3ed47'python
import requests
import hashlib
# 计算 MD5
with open('image.jpg', 'rb') as f:
md5 = hashlib.md5(f.read()).hexdigest()
url = f"{globalDomain}/ous/api/v2/single/upload"
headers = {"ous-token-v2": ousToken}
with open('image.jpg', 'rb') as f:
files = {'file': f}
data = {'md5': md5}
response = requests.post(url, headers=headers, files=files, data=data)javascript
const formData = new FormData();
formData.append('file', fileBlob);
formData.append('md5', md5Value);
const response = await fetch(
`https://${globalDomain}/ous/api/v2/single/upload`,
{
method: 'POST',
headers: { 'ous-token-v2': ousToken },
body: formData
}
);Response
数据结构
json
{
"c": "0",
"d": {
"taskId": "upload_task_id"
}
}字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
taskId | string | 上传任务 ID |
下一步
上传后需要轮询 查询状态 接口,直到 status 为 5 表示上传成功。
注意
轮询间隔建议 200ms 以上。