Coze API如何上传文件能得到文件的file_url
coze api如何上传文件能得到文件的file_url
- 引用 7 篇资料作为参考
- 通过python API来调用扣子coze的工作流(支持文件上传)_扣子api-CSDN博客
- coze插件文件上传 - CSDN文库
- coze如何读取上传的文件 - CSDN文库
- COZE API上传文件 直接从前端发送就可以,而通过后端发请求给CozeAPI就不行,为什么?-CSDN博客
- 【Coze隐藏功能大公开】文件盒子超全指南!一键解决文件丢失烦恼
- coze工作流上传文件 - CSDN文库
- AI智能体 | 扣子coze API怎么用?看完这篇让你学会远程调用
要通过Coze API上传文件并获取文件的file_url(即直接访问文件的URL),需结合Coze的API设计逻辑和文件处理机制。以下是具体方法和注意事项:
⬆️ 一、文件上传的核心机制
- 上传接口返回file_id而非file_url
Coze的文件上传API(https://api.coze.cn/v1/files/upload)仅返回文件的唯一标识符file_id,不会直接返回file_url[citation:1][citation:6]。- 示例代码(Python):
import requests
def upload_file(file_path, token):url = "https://api.coze.cn/v1/files/upload"headers = {"Authorization": f"Bearer {token}"}with open(file_path, "rb") as file:files = {"file": file}response = requests.post(url, headers=headers, files=files)return response.json()["data"]["id"] # 返回 file_id
- file_id如何转为file_url?
- 工作流自动转换:当file_id作为参数传递给工作流时,Coze系统会自动将其解析为可访问的file_url[citation:1][citation:6]。
- 工作流调用示例:
- 工作流自动转换:当file_id作为参数传递给工作流时,Coze系统会自动将其解析为可访问的file_url[citation:1][citation:6]。
data = {"workflow_id": "YOUR_WORKFLOW_ID","parameters": {"image": "{\"file_id\": \"your_file_id\"}" # file_id 传入后自动转为 file_url}
}
- 无直接API获取file_url:官方未提供通过API直接获取file_url的接口,需依赖工作流的隐式转换[citation:1][citation:6]。
⚙️ 二、替代方案:通过工作流获取file_url
若需显式获取file_url,需在工作流中添加文件下载或处理节点,将file_id转换为可用的URL:
- 在工作流中配置文件处理节点
- 在Coze工作流编辑器中,添加一个HTTP请求节点或代码节点,调用Coze内部服务将file_id解析为file_url(需查阅Coze内部文档或插件说明)。
- 返回file_url作为工作流输出
- 将解析后的file_url作为工作流的输出参数,通过API调用工作流后从响应中提取[citation:6]。
⚠️ 三、注意事项
- 文件访问权限
- 通过工作流生成的file_url通常为临时链接,有效期受Coze策略限制,非永久有效[citation:5]。
- 前端直连上传的优势
- 推荐前端直接调用上传API(而非通过后端代理),避免服务器防火墙、DNS解析等问题导致的超时[citation:4]。
- 大文件处理建议
- 文件 >10MB 时,建议通过后端代理上传(需配置HTTPS Agent和超时时间)[citation:4]:
import https
agent = https.Agent(keepAlive=True, timeout=30000) # 30秒超时
💎 四、总结:完整流程
- 调用/v1/files/upload上传文件 → 获取file_id[citation:1]。
- 将file_id传入工作流 → Coze自动转换为file_url(工作流内部使用)[citation:1][citation:6]。
- 若需显式获取file_url → 在工作流中添加文件解析节点并输出URL。
⚡ 提示:若需永久存储文件,可启用Coze的「文件盒子」功能(Bot编排页面开启),文件将长期保存但依然通过file_id管理,而非直接提供file_url[citation:5]。
这篇文章详细介绍了如何通过Coze API上传文件并获取文件的file_url
,包括核心机制、替代方案、注意事项以及完整流程。
核心机制
文件上传接口
- 上传接口:使用
https://api.coze.cn/v1/files/upload
进行文件上传。 - 返回值:上传成功后,接口返回文件的唯一标识符
file_id
,而不是直接的file_url
。
示例代码(Python)
import requestsdef upload_file(file_path, token):url = "https://api.coze.cn/v1/files/upload"headers = {"Authorization": f"Bearer {token}"}with open(file_path, "rb") as file:files = {"file": file}response = requests.post(url, headers=headers, files=files)return response.json()["data"]["id"] # 返回 file_id
file_id
转换为 file_url
- 自动转换:当
file_id
作为参数传递给工作流时,Coze系统会自动将其解析为可访问的file_url
。 - 工作流调用示例:
{"workflow_id": "YOUR_WORKFLOW_ID","parameters": {"image": "{\"file_id\": \"your_file_id\"}" // file_id 传入后自动转为 file_url} }
替代方案:通过工作流获取 file_url
在工作流中配置文件处理节点
- 添加节点:在工作流编辑器中,添加一个HTTP请求节点或代码节点,调用Coze内部服务将
file_id
解析为file_url
。 - 返回
file_url
:将解析后的file_url
作为工作流的输出参数,通过API调用工作流后从响应中提取。
注意事项
文件访问权限
- 临时链接:通过工作流生成的
file_url
通常为临时链接,有效期受Coze策略限制,非永久有效。
前端直连上传的优势
- 推荐方式:推荐前端直接调用上传API,避免服务器防火墙、DNS解析等问题导致的超时。
大文件处理建议
- 后端代理上传:文件大于10MB时,建议通过后端代理上传,并配置HTTPS Agent和超时时间。
完整流程
- 上传文件:调用
/v1/files/upload
上传文件,获取file_id
。 - 传递
file_id
:将file_id
传入工作流,Coze自动转换为file_url
。 - 显式获取
file_url
:若需显式获取file_url
,在工作流中添加文件解析节点并输出URL。
永久存储文件
- 文件盒子:启用Coze的「文件盒子」功能,文件将长期保存,但依然通过
file_id
管理,而非直接提供file_url
。
通过以上步骤和注意事项,可以有效地通过Coze API上传文件并获取文件的file_url
。