收藏
回答

服务端:A环境下的云函数在B环境中创建了文件!

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 Bug 工具 wx441cc276e1411514 2.3.0


- 当前 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基础初学者,弄的不对的地方,请各位大佬指出,以便我学习修正。谢谢!

回答关注问题邀请回答
收藏

1 个回答

  • Hasaki
    Hasaki
    2018-10-26
    不明白你说的什么意思
    2018-10-26
    有用
    回复
登录 后发表内容