You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 12:24:05