-
Notifications
You must be signed in to change notification settings - Fork 4
1. API
SALTWOOD edited this page Sep 30, 2024
·
1 revision
获取程序目录下 assets 文件夹中的文件。
- 需要
adminToken
- 需要
token
GET /assets/assets.zip HTTP/1.1
Host: localhost:8080
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="assets.zip"
PK.
重定向到 /dashboard。
- 需要
adminToken
- 需要
token
获取集群列表。
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
获取文件列表。
- 需要
adminToken
- 需要
token
[
{
"path": "/files/LxHTTHub/6.png",
"hash": "d48c5fe3e92f1258d48ed7352deba4c2ae61bc16",
"size": 40140,
"lastModified": 1726494734898,
"encodedPath": "/files/LxHTTHub/6.png"
}
]
获取 OAuth ID。
- 需要
adminToken
- 需要
token
1234567890
进行用户登录。
-
code
:OAuth 授权码
- 需要
adminToken
- 需要
token
{
"avatar_url": "https://avatars.githubusercontent.com/u/105980161?v=4",
"username": "SaltWood_233",
"id": 105980161
}
更新文件列表。
-
token
:用户令牌
- 需要
adminToken
- 需要
token
204 No Content 或 409 Conflict,无返回值。
注:在部分版本的 Open93AtHome 中,409 Conflict 会显示一个 HTML 页面(是一个彩蛋)
获取中心统计信息。
- 需要
adminToken
- 需要
token
{
"dailyHits": [
182226,
605185
// 省略
],
"dailyBytes": [
797941969369,
2357231726334
// 省略
],
"today": {
"hits": 182226,
"bytes": 797941969369
},
"onlines": 3,
"sourceCount": 1,
"totalFiles": 579141,
"totalSize": 924432028997
}
获取集群统计信息。
-
clusterId
:集群 ID
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
获取排行榜。
[
// 想象一下这里是一个 object……(具体格式在文末)
// 排名第二的节点……
]
获取用户信息。
- 需要
adminToken
- 需要
token
{
"id": 105980161,
"login": "SaltWood_233",
"avatar_url": "https://avatars.githubusercontent.com/u/105980161?v=4",
"is_super_admin": true
}
绑定集群。
{
"clusterId": "3b748fdb0191aa818bc4c007",
"clusterSecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
解绑集群。
{
"clusterId": "3b748fdb0191aa818bc4c007"
}
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
获取用户绑定的集群列表。
- 需要
adminToken
- 需要
token
[
// 想象一下这里是一个 object……(具体格式在文末)
// 绑定的第一个集群……
]
更新集群信息。
{
"clusterName": "测试",
"bandwidth": 50,
"sponsor": "测试",
"sponsorUrl": "https://www.example.com"
// 注:不写就是不改(比如不写 `bandwidth` 就不会修改带宽)
}
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
重置集群密钥。
-
clusterId
:集群 ID
- 需要
adminToken
- 需要
token
{
"clusterSecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
重定向到随机文件。
302 Found,重定向到随机文件 URL,无响应体。
管理员创建集群。
{
"clusterName": "测试",
"bandwidth": 50
}
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
管理员删除集群。
{
"clusterId": "3b748fdb0191aa818bc4c007"
}
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
管理员封禁集群。
{
"clusterId": "3b748fdb0191aa818bc4c007",
"ban": true // true 为封禁,false 为解封
}
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
管理员踢节点。
-
clusterId
:集群 ID
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
管理员更新集群信息。
-
clusterId
:集群 ID
{
"clusterName": "测试",
"bandwidth": 50,
"sponsor": "测试",
"sponsorUrl": "https://www.example.com"
// 注:不写就是不改(比如不写 `bandwidth` 就不会修改带宽)
}
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
获取同步源列表。
- 需要
adminToken
- 需要
token
[
{
"name": "McimPlugin",
"count": 579141,
"lastUpdated": "2024-09-30T04:38:28.897Z",
"isFromPlugin": true
}
]
管理员切换用户。
{
"id": 1 // 目标用户 GitHub ID
}
- 需要
adminToken
- 需要
token
{
"success": true,
"permission": 5,
"requirePermission": 0,
"user": {
"id": 105980161,
"username": "SaltWood_233",
"photo": "https://avatars.githubusercontent.com/u/105980161?v=4",
"isSuperUser": 5
},
"targetUser": {
"id": 68094002,
"username": "听风",
"photo": "https://avatars.githubusercontent.com/u/68094002?v=4",
"isSuperUser": 0
}
}
获取用户列表。
- 需要
adminToken
- 需要
token
[
{
"id": 105980161,
"username": "SaltWood_233",
"photo": "https://avatars.githubusercontent.com/u/105980161?v=4",
"isSuperUser": 5
},
{
"id": 68094002,
"username": "听风",
"photo": "https://avatars.githubusercontent.com/u/68094002?v=4",
"isSuperUser": 0
}
]
管理员唤起文件更新。
- 需要
adminToken
- 需要
token
204 No Content,无响应体或 409 Conflict 携带原因。
获取分片列表。
- 需要
adminToken
- 需要
token
[
[
{
"path": "/files/LxHTTHub/好辣.png",
"hash": "219f786f26d777db834c09a5a5ba05a975cef327",
"size": 14309,
"lastModified": 1726494735253,
"encodedPath": "/files/LxHTTHub/%E5%A5%BD%E8%BE%A3.png"
}
],
[
{
"path": "/files/LxHTTHub/我是xx.png",
"hash": "a12a3f826846e9e4e10f9ab25c84dfded1ea450c",
"size": 38764,
"lastModified": 1726494735274,
"encodedPath": "/files/LxHTTHub/%E6%88%91%E6%98%AF%E5%82%BB%E9%80%BC.png"
}
]
]
管理员修改节点分片。
-
clusterId
:集群 ID
{
"shards": -1 // 使用一个特殊的方法,传入一个 bool[] 数组,表示是否使用对应分片。
// 注:数组长度源代码中默认 32
}
// 将布尔数组转换为整数(BigInt)
function booleansToInt(bits: boolean[]): number {
return bits.reduce((acc, bit, index) => {
if (bit) {
acc |= (1 << index); // 设置第 index 位为 1
}
return acc;
}, 0);
}
// 将 BigInt 整数转换为布尔数组
function intToBooleans(value: number, size: number): boolean[] {
const bits = [];
for (let i = 0; i < size; i++) {
bits.push((value & (1 << i)) !== 0); // 检查第 i 位是否为 1
}
return bits;
}
- 需要
adminToken
- 需要
token
// 想象一下这里是一个 object……(具体格式在文末)
[
{
"clusterId": "3b748fdb0191aa818bc4c007",
"owner": 0,
"clusterName": "测试"
// 省略其他字段,具体格式无法及时更新到文档中,请参考源代码或实际返回值。
}
]