收藏
回答

云函数将图片转换base64调用request-promise发送时数据总是会超时的问题?

使用了调试工具.版本2.9.4

IOS真机微信版本7.0.8

安卓真机微信版本7.0.7

1. 经过测试,图片大小234.86 KB转换base64字符串后直接调用云函数request-promise发送耗时超过3秒,云函数报{"errorCode":-1,"errorMessage":"Task timed out after 3 seconds"}

2.将上面图片上传到云存储后

直接调用云函数下载云存储上面图片转换

代码如下:

async function getImg(event) {

const res = await cloud.downloadFile({

fileID: event.fileID,

})

const buffer = res.fileContent

return buffer.toString('base64')

}

耗时

执行时间: 1291.02ms内存使用: 35.41 MB

3.通过HTTP API用服务端调用API

batchDownloadFile

获取临时图片链接后下载图片经常超时或者直接失败.

请问云函数,云存储是不是对流出流量有速率上的限制?
还是有什么解决办法

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

2 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-16

    试试

    let buffer = new Buffer(res.fileContent)

    2019-12-16
    赞同 1
    回复 6
    • 杜。
      杜。
      2019-12-16
      感谢回答,改成你这个接报buffer未定义
      2019-12-16
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-12-16回复杜。
      怎么可能未定义?
      2019-12-16
      回复
    • 杜。
      杜。
      2019-12-16
      云函数返回:{"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"buffer is not defined\nReferenceError: buffer is not defined\n at getImg (/var/user/index.js:111:17)\n at \u003canonymous\u003e\n at process._tickCallback (internal/process/next_tick.js:188:7)"}
      代码:
      async function getImg(event) {
        const res = await cloud.downloadFile({
          fileID: event.fileID,
        })
        let buffer =new buffer(res.fileContent)
        return buffer.toString('base64')

      }
      2019-12-16
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-12-16回复杜。
      大写Buffer,大哥
      2019-12-16
      1
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      2019-12-16回复杜。
      new  Buffer
      2019-12-16
      回复
    查看更多(1)
  • 老张
    老张
    2019-12-15

    const buffer = res.fileContent

    buffer可以直接赋值吗?

    2019-12-15
    赞同
    回复 1
    • 杜。
      杜。
      2019-12-16
      代码可以返回正确结果,试了用new buffer报错,我主要想表达的不是转换的问题,测试了应该是云存储空间读取慢的问题,因为图片稍微超过100kb就会超过云函数3秒响应限制
      2019-12-16
      回复
登录 后发表内容
问题标签