Junan_
Junan_
  • 发布:2024-08-11 09:36
  • 更新:2024-08-12 10:33
  • 阅读:289

unicloud内置云存储可以按时间倒序排序吗

分类:uniCloud

默认是按时间顺序,也就是最新的文件在最后面,

那么文件多了之后想要看最新的文件,就要手动无数页才能看到最新的记录

有办法倒叙排序吗?

或者有无api可以查看所有文件列表?

2024-08-11 09:36 负责人:无 分享
已邀请:

最佳回复

BoredApe

BoredApe - 有问题就会有答案。

暂时不支持排序功能。如果想查看所有文件。可以通过js去获取,然后进行排序

1、在network 中找到https://unicloud-api.dcloud.net.cn/unicloud/api/file/list这个接口,右击 copy - Copy as Fetch

2、创建一个js, 复制下方js

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);  
});  

3、将复制到的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,  
        });

4、改造fetch方法的url

&nextToken=修改为:${nextToken ? &nextToken=${nextToken} : ''}`
pageSize=20修改为: 100

5、npm i 安装axios、发起请求

  • Junan_ (作者)

    明白了,感谢回复

    2024-08-12 14:07

要回复问题请先登录注册