云开发之获取某个文件下所有文件的访问链接(详细)

在这里插入图片描述

安装依赖

npm i @cloudbase/manager-node

官网地址:https://docs.cloudbase.net/api-reference/manager/node/initialization

定义云函数

const cloud = require('wx-server-sdk')
const CloudBase = require('@cloudbase/manager-node')
/* 初始化 */
cloud.init()

const {
    
     storage } = new CloudBase()
exports.main = async (event, context) => {
    
    
  const res = await storage.listDirectoryFiles('images/')
  return {
    
     data: res }
}

这里的res结果为:
在这里插入图片描述
是获取到文件信息了,但是不够全面,使用getTemporaryUrl函数可以获取更多数据,
完整代码

// 云函数入口文件
const cloud = require("wx-server-sdk");
const CloudBase = require("@cloudbase/manager-node");

cloud.init(); // 使用当前云环境

const {
    
     storage } = new CloudBase();

// 云函数入口函数
exports.main = async () => {
    
    
  const files = await storage.listDirectoryFiles("day/");

  // 1. 删除第一个元素
  files.splice(0, 1);

  // 2. 把key提取出来
  const requestList = [];
  files.map((value) => {
    
    
    requestList.push(value["Key"]);
  });

  // 3. 构建请求文件fileID数组
  const fileIdList = requestList.map((value) => {
    
    
    return {
    
     cloudPath: value, maxAge: 1800 };
  });

  // 4. 请求临时链接
  const responseList = await storage.getTemporaryUrl(fileIdList);

  return {
    
     data: responseList.map((value) => value["fileId"]) };
};

这样就可以获取到https地址和File ID地址了,可以直接使用到image标签的src上!

// 调用云函数
async toGetDailyPush() {
    
    
  const {
    
     result } = await wx.cloud.callFunction({
    
     name: "getDailyPush" });
  this.setData({
    
     dayImages: result.data || [] });
},
<!-- 使用图片 -->
<view class="img-box">
  <image 
  	src="{
     
     { item }}" 
  	wx:for="{
     
     { dayImages }}" 
  	wx:key="*this" 
  	show-menu-by-longpress 
  	class="day-img" 
  	mode="scaleToFill" 
  />
</view>

文件使用了两个插件函数,官网介绍函数仔细,就不罗列介绍了,去官网看吧

猜你喜欢

转载自blog.csdn.net/weixin_40639095/article/details/134734511