{//fileList是一" />
如何一键获取云存储中指定文件夹的所有图片url地址 您所在的位置:网站首页 如何获取数据库地址 如何一键获取云存储中指定文件夹的所有图片url地址

如何一键获取云存储中指定文件夹的所有图片url地址

#如何一键获取云存储中指定文件夹的所有图片url地址 | 来源: 网络整理| 查看: 265

云存储中的图片地址,是需要用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 实验室设备网 版权所有