服务端:A环境下的云函数在B环境中创建了文件!
- 当前 Bug 的表现(可附上截图)
如图,环境ID是xwjtest,返回结果中的fileID是xwj-1…下的文件。
在云开发后台看也是如此。这个png图片未出现在xwjtest的存储管理中,却出现在了xwj-1…的存储管理下
xwjtest下有服务器端云函数getQrcode(用于生成图片),但存储管理中没有文件。
xwj-1…下没有任何云函数,但存储管理中生成了由getQrcode生成的图片文件。
getQrcode云函数中特意指定了test环境,依然出现此bug
cloud.init({env: 'xwjtest'}); |
- 预期表现
环境隔离
- 复现路径
小程序端调用服务器端的云函数,云函数的功能为创建一个图片文件
- 提供一个最简复现 Demo
// 小程序端 wx.cloud.callFunction({ name: 'getQrcode', // 云函数名称 data: { // 小程序码所需的参数 page: "pages/index/index" }, complete: res => { // console.log('callFunction test result: ', res) this.setData({ // 获取返回的小程序码 qrcodeUrl: res.result.fileID }) } }) |
//服务器云函数// 导入框架const cloud = require('wx-server-sdk');const axios = require('axios');var rp = require('request-promise');cloud.init({ //上线时需调整为正式环境 env: 'xwjtest'});/** * 这个示例将经自动鉴权过的小程序用户 openid 返回给小程序端 * * event 参数包含 * - 小程序端调用传入的 data * - 经过微信鉴权直接可信的用户唯一标识 openid * */// 云函数入口函数exports.main = async(event, context) => { console.log(event); try { const AppID = 'AppIDxxxxxxxx', AppSecret = 'AppSecretxxxxxxxxx'; const getAccessTokenUrl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + AppID + '&secret=' + AppSecret; const resultValue = await rp(getAccessTokenUrl); const token = JSON.parse(resultValue).access_token; console.log('------ TOKEN:', token); // 请求小程序码,使用接口B const response = await axios({ method: 'post', url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit', responseType: 'stream', params: { access_token: token }, data: { page: event.page, width: 430, scene: "id=" + event.userInfo.openId } }); return await cloud.uploadFile({ cloudPath: 'qrcode/openid/' + event.userInfo.openId + '.png', fileContent: response.data }); } catch (err) { console.log('>>>>>> ERROR:', err) }
|
0基础初学者,弄的不对的地方,请各位大佬指出,以便我学习修正。谢谢!
