Closed nitsort closed 2 years ago
2.5 修改了文件接口逻辑应该就不慢了 (大概吧
2.5 需要使用 2.11 的 core
如果你使用 2.10 的 core 目前最高只能使用 2.4
2.5 修改了文件接口逻辑应该就不慢了 (大概吧
2.5 需要使用 2.11 的 core
如果你使用 2.10 的 core 目前最高只能使用 2.4
v2.5.0版本获取文件列表确实挺快的,我刚把core换成2.11版本了,不过还是获取不到文件夹
> /mcl list
2022-05-15 00:22:11 I/MCL Addon: Package: net.mamoe:mirai-console Channel: beta Type: libs Version: 2.11.0-RC2 Locked: false
2022-05-15 00:22:11 I/MCL Addon: Package: net.mamoe:mirai-console-terminal Channel: beta Type: libs Version: 2.11.0-RC2 Locked: false
2022-05-15 00:22:11 I/MCL Addon: Package: net.mamoe:mirai-core-all Channel: beta Type: libs Version: 2.11.0-RC2 Locked: false
2022-05-15 00:22:11 I/MCL Addon: Package: org.itxtech:mcl-addon Channel: c2001 Type: plugins Version: 2.0.2 Locked: false
2022-05-15 00:22:11 I/MCL Addon: Package: org.bouncycastle:bcprov-jdk15on Channel: stable Type: libs Version: 1.64 Locked: false
2022-05-15 00:22:11 I/MCL Addon: Package: net.mamoe:mirai-api-http Channel: stable-v2 Type: plugins Version: 2.5.0 Locked: false
解决了,等一个2.5.1
解决了,等一个2.5.1
使用 v2.5.1 时遇到以下几个问题
1、群文件指定路径下存在文件夹时,调用 /file/list
携带 withDownloadInfo=true
,返回如下报错信息;
GET http://localhost:8080/file/list?sessionKey=SXYESyeL&id=&target=799421545&withDownloadInfo=true
{
"code": 500,
"msg": "class net.mamoe.mirai.internal.contact.file.AbsoluteFolderImpl cannot be cast to class net.mamoe.mirai.contact.file.AbsoluteFile (net.mamoe.mirai.internal.contact.file.AbsoluteFolderImpl and net.mamoe.mirai.contact.file.AbsoluteFile are in unnamed module of loader 'app')"
}
2、调用 /file/info
使用 文件id 获取文件夹内一个文件的信息时返回 指定对象不存在
,使用 path 是好的;
GET http://localhost:8080/file/info?sessionKey=SXYESyeL&id=/0a99a4da-d2b7-11ec-bb26-5452007b592a&group=799421545&withDownloadInfo=true
{
"code": 5,
"msg": "指定对象不存在"
}
{
"code": 0,
"msg": "",
"data": {
"name": "ship.txt",
"id": "/0a99a4da-d2b7-11ec-bb26-5452007b592a",
"path": "/新建文件夹/ship.txt",
...................................
}
}
3、无法上传文件到指定的文件夹,应该和这个问题一样 #553,试过 path 用 id 或者 文件夹名字 都不行;
POST /file/upload HTTP/1.1
User-Agent: PostmanRuntime/7.29.0
Accept: */*
Postman-Token: 5ba7ee82-e3f9-4efe-b775-0dbd993a1077
Host: localhost:8080
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------833643758380034052792225
Content-Length: 1865
----------------------------833643758380034052792225
Content-Disposition: form-data; name="sessionKey"
SXYESyeL
----------------------------833643758380034052792225
Content-Disposition: form-data; name="type"
group
----------------------------833643758380034052792225
Content-Disposition: form-data; name="target"
799421545
----------------------------833643758380034052792225
Content-Disposition: form-data; name="path"
/222
----------------------------833643758380034052792225
Content-Disposition: form-data; name="file"; filename="OfficialMaps.txt"
<OfficialMaps.txt>
----------------------------833643758380034052792225--
HTTP/1.1 200 OK
Date: Sat, 14 May 2022 17:58:56 GMT
Server: ktor-server-core/1.6.5
Content-Length: 80
Content-Type: application/json; charset=UTF-8
Connection: keep-alive
{"code":500,"msg":"Failed to create folder '/222': -303 文件夹名称错误."}
4、/file/list
和 /file/info
获取到的 downloadInfo
中的 downloadTimes
一直是0;
另外想问一下,目前使用 withDownloadInfo=true
才能获取到文件修改日期、上传用户、下载次数这些信息,但会使下载次数+1,😖😅
withDownloadInfo
downloadTimes 为 0 是新的群文件api没有提供了。而mah的接口保留了这个字段。可以提 issue 到 core 仓库
问题都已解决👍,谢谢。
@ryoii 你好,有没有接口可以查询到bot是否有权限在指定的QQ群上传文件,或者该群聊的文件上传权限是什么样的?看了下
[GET] /groupConfig
接口返回的信息中不包含这个。
- 解决
- 解决,使用id时进行递归查找
- 解决,适配新的文件夹定位api
- 获取下载地址的时候就会导致下载次数+1.现在直接将除下载地址外的信息在文件信息中直接带出。如无必要,不需要使用
withDownloadInfo
问题2,如果存在多个文件夹,只有第一个文件夹中的文件可以用id获取,其他文件夹中的还是提示指定对象不存在。
mamoe/mirai#2033
大概扫了一眼,确实没有相关群设置的api,可以到 core 仓库提个 issue
core 2.11 已修复
v2.5.0版本的
/file/list
接口无法获取到文件夹信息,v2.4.0是正常的(就是速度慢) GET http://localhost:8080/file/list?sessionKey=0xfLAhTS&id=&target=799421545