默认是按时间顺序,也就是最新的文件在最后面,
那么文件多了之后想要看最新的文件,就要手动翻无数页才能看到最新的记录
有办法倒叙排序吗?
或者有无api可以查看所有文件列表?
最佳回复
BoredApe - 有问题就会有答案。
暂时不支持排序功能。如果想查看所有文件。可以通过js去获取,然后进行排序
network
中找到https://unicloud-api.dcloud.net.cn/unicloud/api/file/list
这个接口,右击 copy
- Copy as Fetch
const fs = require('fs');
async function fetchAllPagesWithProgress() {
let allData = [];
let nextToken = null;
let pageCount = 0;
do {
console.log(`正在获取第 ${pageCount + 1} 页...`);
// 复制到的fetch 方法粘贴到这里
// const response = await fetch(xxxxx)
const response = await
const data = await response.json();
allData = allData.concat(data.data.files);
nextToken = data.data.nextToken;
pageCount++;
console.log(`已获取 ${allData.length} 个项目...\n`);
} while (nextToken);
// 按照 created_at 时间降序排序数据
allData.sort((a, b) => new Date(b.created_at) - new Date(a.created_at));
return allData;
}
fetchAllPagesWithProgress().then(data => {
fs.writeFileSync('output.json', JSON.stringify(data, null, 2));
console.log('数据已写入 output.json');
}).catch(error => {
console.error(error);
});
fetch
方法粘贴到js中const response = await fetch(`https://unicloud-api.dcloud.net.cn/unicloud/api/file/list?%2F&mode=DIRECTORY${nextToken ? `&nextToken=${nextToken}` : ''}`, {
headers: {
accept: 'application/json, text/plain, */*',
'accept-language': 'zh-CN,zh;q=0.9',
'cache-control': 'no-cache',
pragma: 'no-cache',
'sec-ch-ua': '"Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"macOS"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-site',
token: 'token',
Referer: 'https://unicloud.dcloud.net.cn/',
'Referrer-Policy': 'strict-origin-when-cross-origin',
},
method: 'GET',
body: null,
});
将&nextToken=
修改为:${nextToken ? &nextToken=${nextToken}
: ''}`
将pageSize=20
修改为: 100
Junan_ (作者)
明白了,感谢回复
2024-08-12 14:07