Compare commits

...

3 Commits

Author SHA1 Message Date
Vinlic 2aa6465a36 Release 0.0.30 2024-04-25 10:49:26 +08:00
Vinlic 09250f208a Merge branch 'master' of https://github.com/LLM-Red-Team/kimi-free-api 2024-04-25 10:49:17 +08:00
Vinlic a2d5ab9390 修复某些大文件无法正常上传处理问题 2024-04-25 10:47:57 +08:00
2 changed files with 43 additions and 29 deletions

View File

@ -1,6 +1,6 @@
{
"name": "kimi-free-api",
"version": "0.0.28",
"version": "0.0.30",
"description": "Kimi Free API Server",
"type": "module",
"main": "dist/index.js",

View File

@ -609,35 +609,49 @@ async function uploadFile(fileUrl: string, refreshToken: string) {
});
checkResult(result, refreshToken);
// 获取文件上传结果
result = await axios.post('https://kimi.moonshot.cn/api/file', {
type: 'file',
name: filename,
object_name: objectName,
timeout: 15000
}, {
headers: {
Authorization: `Bearer ${accessToken}`,
Referer: `https://kimi.moonshot.cn/`,
'X-Traffic-Id': userId,
...FAKE_HEADERS
}
});
const { id: fileId } = checkResult(result, refreshToken);
let fileId, status, startTime = Date.now();
while (status != 'initialized') {
if (Date.now() - startTime > 30000)
throw new Error('文件等待处理超时');
// 获取文件上传结果
result = await axios.post('https://kimi.moonshot.cn/api/file', {
type: 'file',
name: filename,
object_name: objectName,
timeout: 15000
}, {
headers: {
Authorization: `Bearer ${accessToken}`,
Referer: `https://kimi.moonshot.cn/`,
'X-Traffic-Id': userId,
...FAKE_HEADERS
}
});
({ id: fileId, status } = checkResult(result, refreshToken));
}
// 处理文件转换
result = await axios.post('https://kimi.moonshot.cn/api/file/parse_process', {
ids: [fileId],
timeout: 120000
}, {
headers: {
Authorization: `Bearer ${accessToken}`,
Referer: `https://kimi.moonshot.cn/`,
'X-Traffic-Id': userId,
...FAKE_HEADERS
}
});
checkResult(result, refreshToken);
startTime = Date.now();
let parseFinish = false;
while (!parseFinish) {
if (Date.now() - startTime > 30000)
throw new Error('文件等待处理超时');
// 处理文件转换
parseFinish = await new Promise(resolve => {
axios.post('https://kimi.moonshot.cn/api/file/parse_process', {
ids: [fileId],
timeout: 120000
}, {
headers: {
Authorization: `Bearer ${accessToken}`,
Referer: `https://kimi.moonshot.cn/`,
'X-Traffic-Id': userId,
...FAKE_HEADERS
}
})
.then(() => resolve(true))
.catch(() => resolve(false));
});
}
return fileId;
}