安装依赖
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>
文件使用了两个插件函数,官网介绍函数仔细,就不罗列介绍了,去官网看吧