面向需要在自有网站、图床脚本、客户端程序里调用本云盘上传 / 管理文件的开发者
| 项 | 值 |
|---|---|
| 统一入口 | http://pan.6665q.com/api.php?action=接口名 |
| 请求方式 | POST(部分接口同时支持 GET) |
| 鉴权 | Authorization: Bearer <Token> 请求头,或 ?token=<Token> 参数 |
| 返回格式 | 统一 JSON:{ "code": 0, "msg": "...", "data": {...} } |
code = 0 表示成功,data 为业务数据;code != 0 表示失败,msg 为原因(常见 401 未登录 / 403 无权限 / 400 参数错误)。
用于图床 / 文件服务器场景:一个请求上传一张图(或任意文件),直接拿到可公开访问的 URL。
POST http://pan.6665q.com/api.php?action=api_upload
Authorization: Bearer <Token>
Content-Type: multipart/form-data
file = 文件二进制(multipart 表单,必填)
folder_id = 目标文件夹 ID(可选,默认 0 根目录)
{
"code": 0,
"msg": "上传成功",
"data": {
"file_id": 13,
"name": "图片.png",
"size": 92160,
"md5": "ab8717f458d557f82ad26e6a9fa3cd7a",
"instant": false,
"url": "http://pan.6665q.com/uploads/202609/njawg08xPrhxFSFK.png"
}
}
url 即文件直链,可直接用于 <img src>、下载链接等。instant = true 表示命中秒传(同 MD5 文件已存在,直接复用,不重复占用空间)。{ "code": 401, "msg": "未登录", "data": null }
{ "code": 400, "msg": "缺少文件(字段名 file)", "data": null }
{ "code": 403, "msg": "空间不足:已用 1.2 MB,剩余 0 B", "data": null }
上传图片时系统会自动生成缩略图(JPEG),返回中的 thumb 即缩略图地址,可直接用于列表预览、图床引用。
GET http://pan.6665q.com/thumb.php?id={file_id} 默认缩略图(长边 300)
GET http://pan.6665q.com/thumb.php?id={file_id}&w=200 指定宽(高按比例)
GET http://pan.6665q.com/thumb.php?id={file_id}&w=200&h=200 指定宽高(等比不裁剪)
GET http://pan.6665q.com/thumb.php?id={file_id}&webp=1 输出 WebP(体积更小)
GET http://pan.6665q.com/thumb.php?id={file_id}&q=90 质量 1-100
返回图片二进制(非 JSON),浏览器缓存 7 天。图片处理基于服务器 GD 库,支持 JPEG / PNG / GIF / WebP / BMP 输入。
| 上传返回字段 | 说明 |
|---|---|
url | 原图直链(可当图床) |
thumb | 缩略图地址(静态 JPEG,体积小) |
thumb_raw | 缩略图原文件直链(无则空) |
| 接口 | 说明 | 参数 | 返回 |
|---|---|---|---|
api_token_info | 查询当前 Token | 无 | { token, masked, enabled } |
api_token_reset | 重置 Token(旧 Token 立即失效) | 无 | { token } |
这两个接口同样需要已登录状态(会话或 Bearer Token)。
以下接口均需登录态(会话或 Bearer Token)。
| 接口 | 说明 | 关键参数 |
|---|---|---|
files_list | 文件列表 | folder_id(0)、search、type(all/image/video/audio/doc/archive)、sort、page、page_size |
folders_list | 文件夹列表 | 无 |
folder_create | 新建文件夹 | name |
file_rename | 重命名 | id、name |
file_move | 移动 | ids(逗号分隔)、folder_id |
file_delete | 删除(入回收站) | ids(逗号分隔) |
trash_list | 回收站列表 | page |
trash_restore | 恢复 | ids |
trash_purge | 彻底删除 | ids |
trash_empty | 清空回收站 | 无 |
file_set_desc | 编辑描述 | id、desc |
files_stats | 文件统计 | 无 |
{
"code": 0,
"data": {
"total": 12,
"page": 1,
"list": [
{
"id": 13, "name": "图片.png", "folder_id": 0, "is_dir": false,
"size": 92160, "size_text": "90 KB", "ext": "png", "kind": "image",
"created_at": "2026-09-22 10:00:00", "time_ago": "3 小时前"
}
]
}
}
| 接口 | 说明 | 关键参数 |
|---|---|---|
share_create | 创建分享 | file_id、code(提取码,可选)、expire_days(0=永久)、max_downloads(0=不限) |
share_update | 更新分享 | token、code、expire_days、max_downloads |
share_delete | 删除分享 | token |
share_list | 分享列表 | 无 |
{
"code": 0,
"data": {
"share": {
"token": "AbCdEf123456",
"code": "",
"url": "http://pan.6665q.com/s/AbCdEf123456",
"download_url": "http://pan.6665q.com/download.php?token=AbCdEf123456"
}
}
}
| 接口 | 说明 | 参数 |
|---|---|---|
preview_url | 获取文件预览地址 | id |
preview_text | 获取文本/代码内容 | id |
curl -X POST "http://pan.6665q.com/api.php?action=api_upload" \
-H "Authorization: Bearer 你的Token" \
-F "file=@/path/to/image.png"
<?php
$token = '你的Token';
$ch = curl_init('http://pan.6665q.com/api.php?action=api_upload');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer $token"],
CURLOPT_POSTFIELDS => ["file" => new CURLFile("/path/to/img.png")],
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $res["code"] === 0 ? $res["data"]["url"] : $res["msg"];
import requests
token = "你的Token"
url = "http://pan.6665q.com/api.php?action=api_upload"
headers = {"Authorization": f"Bearer {token}"}
with open("image.png", "rb") as f:
r = requests.post(url, headers=headers, files={"file": f})
res = r.json()
print(res["data"]["url"] if res["code"] == 0 else res["msg"])
const token = '你的Token';
const form = new FormData();
form.append('file', fileInput.files[0]);
fetch('http://pan.6665q.com/api.php?action=api_upload', {
method: 'POST',
headers: { 'Authorization': 'Bearer ' + token },
body: form,
})
.then(r => r.json())
.then(res => {
if (res.code === 0) console.log(res.data.url);
else console.error(res.msg);
});
<form action="http://pan.6665q.com/api.php?action=api_upload&token=你的Token"
method="post" enctype="multipart/form-data">
<input type="file" name="file">
<button type="submit">上传</button>
</form>
Q:返回 401「未登录」?
A:Token 错误或已失效。请在「API 管理」重新复制 Token;若重置过,需用新 Token。
Q:返回 403「开放 API 已关闭」或「无权使用」?
A:管理员在「站点设置 → API 设置」关闭了开放 API,或限制了调用等级。
Q:上传大文件失败?
A:图床接口 api_upload 走单文件直传,受「API 设置」的 api_max_size(默认 20MB)限制。更大文件请用网盘内的分片上传。
Q:直链访问不了(404)?
A:若文件被删除,直链失效。图床直链指向物理文件,删除文件即失效。
面向「你的客户网站/插件」的授权校验接口。客户站点不登录本站,通过 授权码 + 域名 校验。所有响应带 HMAC-SHA256 签名(后台授权管理生成密钥后启用)。
GET/api.php?action=lic_verify
| 参数 | 必选 | 说明 |
|---|---|---|
| product | 是 | 产品标识(pkey),后台授权管理查看 |
| license | 是 | 授权码 |
| domain | 二选一 | 站点域名(域名绑定模式) |
| fingerprint | 二选一 | 设备指纹(指纹绑定模式) |
| version | 否 | 当前程序版本(配合 max_version 限高) |
响应 payload.valid = true 即授权有效;失败会自动进入黑名单(盗版检测)。
POST/api.php?action=lic_activate — 激活绑定站点(消费绑定名额)
POST/api.php?action=lic_deactivate — 主动解绑(自助换绑,受次数限制)
GET/api.php?action=lic_offline — 离线授权包(完全断网站点用,本地验签)
填好参数点「发送请求」,实时查看响应(借鉴奇云 docs_api 的在线测试模式)。
等待请求…