如何通过Python向mirrorace.org API发送POST请求实现文件上传
Mirrorace Python 上传实现(新手友好版)
前置准备
首先安装Python常用的HTTP请求库requests,在终端执行以下命令即可:pip install requests
上传逻辑对应说明
官方PHP示例的核心流程完全可以通过Python复刻,没有额外的复杂逻辑,整体分为2步:
- 先向Mirrorace的API基础端点发起无文件的POST请求,从返回结果中获取实际用于上传文件的服务器地址
- 把本地文件按表单格式封装,POST到上一步拿到的服务器地址,等待返回最终的上传结果
可直接运行的完整代码
import requests # 第一步:获取实际上传服务器地址 # 对应官方API文档的基础端点 api_endpoint = "https://mirrorace.org/api/upload" first_resp = requests.post(api_endpoint) first_result = first_resp.json() # 前置校验第一步请求结果,避免后续报错 if first_result.get("status") != 200: print("获取上传地址失败,错误信息:", first_result.get("message")) exit() actual_upload_url = first_result["url"] print("已获取上传服务器地址:", actual_upload_url) # 第二步:上传本地文件 # 替换为你自己的本地文件路径,新手建议直接写完整绝对路径降低出错概率 local_file_path = "替换为你的待上传文件路径,例如 D:/资料/demo.zip" # 构造符合接口要求的文件表单,字段名file和官方PHP示例完全一致 upload_payload = { "file": open(local_file_path, "rb") } # 发起文件上传请求 upload_resp = requests.post( actual_upload_url, files=upload_payload, # 大文件上传可打开下方注释,设置5分钟超时避免请求无响应 # timeout=300 ) upload_result = upload_resp.json() # 输出最终结果 if upload_result.get("status") == 200: print("上传成功") print("生成的文件直链:", upload_result["file"]["url"]) else: print("上传失败,错误信息:", upload_result.get("message")) # 关闭文件句柄,避免资源占用 upload_payload["file"].close()
新手常见问题排查
- 路径报错:如果提示找不到指定文件,优先检查路径斜杠方向,Windows环境建议使用
/代替\,避免路径转义出错;同时确认文件没有被其他程序锁定占用 - 网络报错:如果第一步请求就返回非200状态,检查当前网络环境能否正常访问Mirrorace站点,避免受内网代理限制
- 大文件上传异常:上传体积超过100M的文件时,建议开启代码中的超时配置,避免请求长时间等待无响应
- 表单字段错误:如果上传时报参数缺失,确认表单中的文件字段名没有写错,必须是官方要求的
file,不能自行修改
注意:所有接口地址均为官方文档明示的固定端点,无需自行拼接其他参数。
内容的提问来源于stack exchange,提问作者cool movies
相关产品推荐
相关产品推荐

