超级智体
超级智体-图片暂存系统
本系统用于图片和内容的临时暂存、链接生成、自动清理和后台维护。公开页面仅作为接口说明入口,不提供前端上传组件。
详细 API 说明
以下内容可直接发送给第三方开发者。除特别说明外,接口返回均为 JSON,上传限制以后台当前设置为准。
API Base URL
https://oss.chaojizhiti.com/api
单次上传上限
50MB
上传密钥
当前不需要
图片转换
不自动转换,按原文件类型保存
一、接入概览
| 上传接口 | POST https://oss.chaojizhiti.com/api/upload |
|---|---|
| 删除接口 | https://oss.chaojizhiti.com/api/delete/{delete_code}/{hash} |
| 文件信息 | GET https://oss.chaojizhiti.com/api/info/{hash} |
| 推荐请求格式 | 文件上传使用 multipart/form-data;Base64 和 URL 上传使用 application/x-www-form-urlencoded。 |
| 错误判断 | 业务成功或失败以 JSON 里的 status 字段为准;不要只依赖 HTTP 状态码。 |
| 允许格式 | mp4, url, md, markdown, mp3, wav, ogg, flac, m4a, album, txt, text, csv, png, bmp, gif, jpg, jpeg, x-png, webp, ico |
二、上传接口
POST https://oss.chaojizhiti.com/api/upload
| 参数 | 位置 | 必填 | 说明 |
|---|---|---|---|
file |
multipart/form-data |
三选一 | 直接上传本地文件,推荐用于大文件和图片原图。 |
base64 |
form |
三选一 | 提交 Base64 内容,支持 data:image/jpeg;base64,... 或纯 Base64。系统会在解码前后检查 50MB 上限。 |
url |
form 或 query |
三选一 | 让服务器从远程 HTTP/HTTPS 地址拉取文件。私有 IP、无效 URL 和超过大小限制的远程文件会被拒绝。 |
uploadcode |
form 或 query |
否 | 当前后台未启用上传密钥;如后续启用,调用方需要同步增加此参数。 |
hash |
form 或 query |
否 | 可选自定义文件标识。通常建议不传,由系统自动生成,避免冲突。 |
同一次请求只需要选择
file、base64、url 中的一种上传方式。大文件优先使用 file,Base64 会比原二进制体积更大。远程 URL 拉取不跟随跳转,目标地址必须能直接返回文件内容。
三、请求示例
直接文件上传:
curl -s -X POST \
-F "file=@image.jpg" \
"https://oss.chaojizhiti.com/api/upload"
Base64 上传:
curl -s -X POST \
--data-urlencode "base64=data:image/jpeg;base64,/9j/4AAQ..." \
"https://oss.chaojizhiti.com/api/upload"
远程 URL 上传:
curl -s -X POST \
--data-urlencode "url=https://example.com/image.jpg" \
"https://oss.chaojizhiti.com/api/upload"
四、成功返回
新文件上传成功:
{
"status": "ok",
"hash": "7eli4d.jpg",
"filetype": "image/jpeg",
"url": "https://oss.chaojizhiti.com/7eli4d.jpg",
"delete_code": "delete-code",
"delete_url": "https://oss.chaojizhiti.com/delete_delete-code/7eli4d.jpg"
}
重复文件返回:
{
"status": "ok",
"duplicate": true,
"hash": "7eli4d.jpg",
"filetype": "image/jpeg",
"url": "https://oss.chaojizhiti.com/7eli4d.jpg"
}
hash |
系统保存后的文件标识,访问、删除和查询信息时都需要使用。 |
|---|---|
url |
可直接访问的公开链接。 |
delete_code |
删除凭证。只在新上传成功时返回,调用方必须自行保存。 |
delete_url |
删除链接。只在新上传成功时返回,后续可用于删除该文件。 |
duplicate |
为 true 时表示系统已存在相同内容,返回的是已有文件链接。 |
五、删除与查询
删除时推荐直接保存并调用上传返回里的 delete_url。如需拼接 API 地址,可使用:
curl -s "https://oss.chaojizhiti.com/api/delete/{delete_code}/{hash}"
查询文件元信息:
curl -s "https://oss.chaojizhiti.com/api/info/{hash}"
信息接口成功时直接返回 metadata,不额外包一层 status=ok:
{
"mime": "image/jpeg",
"size": 204800,
"size_human": "200 KB",
"original_filename": "image.jpg",
"hash": "7eli4d.jpg",
"sha1": "40-character-sha1",
"uploaded": 1782810000
}
删除凭证无法从公开信息接口反查。第三方系统需要在首次上传成功后保存
hash、url、delete_code 和 delete_url。
六、错误格式与常见原因
{
"status": "err",
"reason": "File too big. 50MB max"
}
| reason | 含义 | 处理建议 |
|---|---|---|
Access denied |
来源 IP 不在允许范围内。 | 联系管理员放行调用方出口 IP。 |
Incorrect upload code specified - Access denied |
上传密钥缺失或错误。 | 提交正确的 uploadcode。 |
File too big. 50MB max |
文件、远程文件或 Base64 解码后内容超过后台上限。 | 压缩文件或联系管理员调整上传上限。 |
Unsupported mime type: ... |
文件类型不在当前允许范围内。 | 使用允许格式,或由管理员在后台启用对应类型。 |
Invalid base64 payload |
Base64 内容无法严格解码。 | 确认编码完整,建议使用 data:*;base64,... 格式。 |
Private IP range / Invalid URL |
远程 URL 不合法,或指向内网地址。 | 使用公开可访问的 HTTP/HTTPS 文件地址。 |
No file uploaded |
没有提交 file、base64 或 url。 |
按三种上传方式之一提交参数。 |
Upload error: ... |
PHP 接收上传文件失败,例如超过 PHP 环境限制或临时目录异常。 | 检查客户端文件大小、网络连接和服务器环境状态。 |
Hash not found |
查询或删除的 hash 不存在,可能已过期清理。 |
确认保存的是上传返回的完整 hash。 |
Invalid delete code |
删除凭证不匹配。 | 使用首次上传返回的 delete_code 或 delete_url。 |
七、接入注意事项
- Base64 会比原始二进制更大;接近 50MB 的文件建议使用
multipart/form-data直接上传。 - 如果后台启用 PNG 转 JPG,返回的
hash和url可能使用.jpg后缀,调用方应以返回值为准。 - 系统会按内容 SHA1 做重复检测,相同文件再次上传可能返回
duplicate=true。 - 保留策略由后台控制,超过管理员设置的保留时间后,文件可能被自动清理。
- 公开页面不提供上传测试组件;第三方系统请直接调用 API。
- 项目内可能保留旧版
/src/api/*.php文件;第三方新接入统一使用本文档中的/api/...路径。