{//fileList是一" />
如何一键获取云存储中指定文件夹的所有图片url地址 | 您所在的位置:网站首页 › 如何获取数据库地址 › 如何一键获取云存储中指定文件夹的所有图片url地址 |
云存储中的图片地址,是需要用cloudId或者路径来换取。像这样: .getTempFileURL({ fileList: ["cloud://a/b/c", "cloud://d/e/f"] }) .then((res) => { // fileList 是一个有如下结构的对象数组 // [{ // fileID: 'cloud://webtestjimmy-5328c3.7765-webtestjimmy-5328c3-1251059088/腾讯云.png', // 文件 ID // tempFileURL: '', // 临时文件网络链接 // maxAge: 120 * 60 * 1000, // 有效期 // }] console.log(res.fileList); });但是怎么能批量获取云存储中指定文件夹的图片或者文件的cloudID或着路径,然后来换取临时链接呢? 很简单 我们首先需要通过node.js管理端SDK(https://docs.cloudbase.net/api-reference/manager/node/storage.html#listdirectoryfiles)的API中 listDirectoryFiles来获取指定文件的所有文件 const result = await storage.listDirectoryFiles("testfiles/img/");调用结果如下 它的结构是这样 { Key: 'testfiles/img/13f5e8de79ba426feff3987b LastModified: '2021-03-23T06:23:53.000Z', ETag: '"13f5e8de79ba426feff3987be102f012"', Size: '333884', Owner: { ID: '1304607081', DisplayName: '130 StorageClass: 'STANDARD' },然后我们需要的便是Key这个数据,因为它对应的是我们文件的路径。但是需要注意的是,返回的数据第一个我们需要去掉,因为它是指定文件夹的根目录,没有意义。 所以我们需要这样做 //删除第一个元素 result.splice(0, 1);接着把Key提取出来 let requestList = []; //把key提取出来 result.map((value) => { requestList.push(value['Key']); });因为换取url的接口格式和参数如下 storage.getTemporaryUrl([ { cloudPath: "files/data.txt", maxAge: 86400, }, ]);
传进一个包含cloudPath也就是我们提取出来路径,还有一个url有效的时间 所以我们需要构建一个这样的数组 let fileIdList = [] //构建请求文件fileID数组 fileIdList = requestList.map((value) => { return { cloudPath: value, maxAge: 1800 } })打印的结果如下 已经接近我们想要的了,最后我们只需要调用换取临时连接url的接口就可以了 把fileIdList传进去getTemporaryUrl接口里。获取结果 let responseList = []; //请求临时链接 responseList = await storage.getTemporaryUrl(fileIdList); console.log(responseList);让我们来看看打印结果 url就是我们需要的地址了。 完结撒花! |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |