收藏
回答

cloud.uploadFile上传buffer类型数据时报错怎么解决?

开发环境:

1、API组件名:cloud.uploadFile

2、基础库版本号:2.14.1

问题描述:

1、两个云开发环境1和云开发环境2;

2、云开发环境1中调用云开发环境2中的云函数(调用cloud.openapi.wxacode.getUnlimited函数)获得buffer类型数据

3、云开发环境1中云函数调用cloud.uploadFile函数将该buffer数据上传保存

4、第三步中执行报错,报错如下:

相关源代码调用过程:

下图是云开发环境1的云函数,先调用generateCollectionCode函数获得buffer类型的数据,然后调用uploadCollectionCodeFile函数将buffer类型数据文件上传保存到云存储中

下图是generateCollectionCode函数实现:调用云开发环境2中的云函数(调用cloud.openapi.wxacode.getUnlimited函数)

下图是uploadCollectionCodeFile函数实现:调用cloud.uploadFile函数将buffer类型文件上传保存到云开发环境1中的云存储中;

错误就是执行cloud.uploadFile函数报的。

下图是云开发环境1中cloud和cloud2的初始化内容



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

2 个回答

  • Shannon
    Shannon
    2021-06-08

    你好,请确认下 buffer 是否正确传入 generateCollectionCode 函数,可以打出日志看看是否正确呢

    2021-06-08
    有用
    回复 2
    • 钱江有源
      钱江有源
      2021-06-09
      generateCollectionCode调用cloud.openapi.wxacode.getUnlimited函数获得的原始buffer值见图1,经过cloud2.callFunction处理最终返回的buffer值见图2,经过比较,里面的值是完全一致的,只是显示上不同,不知道是不是这个引起的
      好像回复里发不了图片,看我下面的评论
      2021-06-09
      回复
    • 少年锦时
      少年锦时
      2021-10-13
      问一下将buffer正常上传进云存储但是不能正常打开是什么原因
      2021-10-13
      回复
  • 钱江有源
    钱江有源
    2021-06-09

    generateCollectionCode调用cloud.openapi.wxacode.getUnlimited函数获得的原始buffer值见图1,经过cloud2.callFunction处理最终返回的buffer值见图2,经过比较,里面的值是完全一致的,只是显示上不同,不知道是不是这个引起的

    下图为图1

    下图为图2

    2021-06-09
    有用
    回复 1
    • Shannon
      Shannon
      2021-06-09
      这里返回的 Buffer 可能被序列化为 Object 类型,导致缺少了对应的函数,可以使用 Buffer.from(buffer.data) 转换回 Buffer 类型,再传入 uploadFile 再试下呢
      2021-06-09
      回复
登录 后发表内容