流星快传 API 开放平台 — 通过 API 调用文件分享和 P2P 直传服务
所有 API 请求需要在 Authorization 头中携带 API Key:
Authorization: Bearer ms_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
获取 API Key:
| 限制项 | Pro 用户 |
|---|---|
| 请求频率 | 100 次/分钟 |
| 单文件大小 | 最大 2 GB |
| 活跃文件数 | 30 个 |
| 存储空间 | 5 GB |
响应头中包含速率限制信息:
X-RateLimit-Limit: 100 # 窗口内最大请求数
X-RateLimit-Remaining: 95 # 剩余请求数
X-RateLimit-Reset: 1719648000 # 窗口重置时间(Unix 时间戳)
所有错误响应格式统一:
{
"ok": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "请求过于频繁,请在 30 秒后重试"
}
}
| 错误码 | HTTP 状态 | 说明 |
|---|---|---|
UNAUTHORIZED | 401 | 缺少或无效的 API Key |
FORBIDDEN | 403 | Pro 到期或 Key 已禁用 |
NOT_FOUND | 404 | 资源不存在 |
VALIDATION_ERROR | 422 | 参数校验失败 |
RATE_LIMIT_EXCEEDED | 429 | 超过速率限制 |
FILE_TOO_LARGE | 413 | 文件超过大小限制 |
INTERNAL_ERROR | 500 | 服务器内部错误 |
上传文件,支持所有格式(屏蔽可执行文件)。小文件推荐使用此接口,大文件(>100MB)建议使用分片上传。
Content-Type: multipart/form-data
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
file | File | ✅ | 文件内容 |
expire | String | ❌ | 有效期:10m/30m/1h/6h/12h/1d/3d/7d/custom,默认 1h |
customMinutes | Number | ❌ | 自定义分钟数(expire=custom 时必填,1~10080) |
password | String | ❌ | 提取码(最多 20 字符) |
downloadLimit | Number | ❌ | 下载次数限制(0=无限制) |
alias | String | ❌ | 自定义短链(3-20位,字母/数字/下划线/横线) |
description | String | ❌ | 文件备注/描述 |
burnAfterRead | Boolean | ❌ | 阅后即焚 |
bandwidthLimit | Number | ❌ | 带宽限制(bytes/sec) |
示例:
curl -X POST https://meteorsend.top/api/v1/files/upload \
-H "Authorization: Bearer ms_live_xxx" \
-F "file=@report.pdf" \
-F "expire=1d" \
-F "password=mypass" \
-F "description=季度报告"
响应:
{
"ok": true,
"data": {
"code": "aB3x7Kp9",
"alias": null,
"url": "https://meteorsend.top/d/aB3x7Kp9",
"manageUrl": "https://meteorsend.top/m/abc123def456",
"expireAt": 1719648000000,
"size": 2048576,
"name": "report.pdf",
"hasPassword": true,
"burnAfterRead": false,
"description": "季度报告"
}
}
初始化分片上传,返回 uploadId 用于后续分片上传。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
fileName | String | ✅ | 文件名 |
fileSize | Number | ✅ | 文件总大小(bytes) |
totalChunks | Number | ✅ | 总分片数 |
上传单个分片。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
index | Number | ✅ | 分片序号(从 0 开始) |
chunk | File | ✅ | 分片数据 |
完成分片上传,合并所有分片。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
expire | String | ❌ | 有效期(同上传接口) |
password | String | ❌ | 提取码 |
description | String | ❌ | 备注 |
列出当前用户的所有有效文件。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
page | Number | ❌ | 页码,默认 1 |
limit | Number | ❌ | 每页数量,默认 20,最大 100 |
响应:
{
"ok": true,
"data": {
"files": [
{
"code": "aB3x7Kp9",
"name": "report.pdf",
"size": 2048576,
"downloadCount": 3,
"expireAt": 1719648000000,
"createdAt": 1719561600000,
"hasPassword": true,
"description": "季度报告"
}
],
"total": 15,
"page": 1,
"pages": 1
}
}
获取单个文件的详细信息。
更新文件设置(密码、有效期、别名、描述等)。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
alias | String | ❌ | 新别名(空字符串清除) |
password | String | ❌ | 新密码(空字符串清除) |
downloadLimit | Number | ❌ | 下载次数限制 |
expire | Number | ❌ | 从现在起延期(分钟) |
description | String | ❌ | 备注 |
删除文件(移入回收站,24h 内可恢复)。
获取带签名的临时下载 URL。URL 有效期 1 小时,可直接用于下载,无需额外认证。
响应:
{
"ok": true,
"data": {
"downloadUrl": "https://meteorsend.top/dl/aB3x7Kp9?sig=xxx&exp=1719648000",
"expiresIn": 3600,
"fileName": "report.pdf",
"fileSize": 2048576
}
}
P2P 直传 API 用于通过编程方式创建和管理 P2P 传输房间。创建 Room 后,接收方可以通过生成的链接在浏览器中接收文件。
创建 P2P 传输 Room。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
fileName | String | ✅ | 文件名 |
fileSize | Number | ❌ | 文件大小(bytes,用于显示) |
password | String | ❌ | 提取码 |
响应:
{
"ok": true,
"data": {
"roomId": "xK9mP2qR",
"shareUrl": "https://meteorsend.top/p2p/xK9mP2qR",
"expiresAt": 1719565200000,
"status": "waiting"
}
}
/ws/webrtc) 连接并等待接收方加入。详情参考 P2P 信令协议。查询 Room 状态(是否已有接收方连接、传输进度等)。
关闭 Room,断开所有连接。
获取当前 API Key 对应的账户信息。
响应:
{
"ok": true,
"data": {
"username": "test01",
"vipLevel": 1,
"vipExpire": 1719648000000,
"storageUsed": 104857600,
"storageLimit": 5368709120,
"activeFiles": 5,
"totalFiles": 12,
"tierName": "pro",
"maxFileSize": 2147483648,
"maxExpire": 604800000,
"maxActive": 30
}
}