【问题已解决】 换了一种思路,不用pipe,直接从服务器获取buffer,云端可以实现从服务器下载文件和上传到云存储。 以下是修正后代码: const code_options = { method: 'GET', url: encodeURI("https://test.haijie001.top/createHanzi?paperType=01&hanziContent=你好"), json: true, encoding: null }; const buffer = await rp(code_options); const upload = await cloud.uploadFile({ cloudPath: 'hanziResult.xlsx', fileContent: buffer, })
云函数无法中转文件到云存储?想通过云函数访问自己的服务器获取文件,并上传到云存储。 本地调试没问题,可以从服务器上获取文件并成功上传到云存储。 可是部署到云端后,云开发工具测试和小程序真机测试,都无法实现上传文件。(本地和云端代码完全一致) 由于无法云端调试,所以不清楚是获取到文件数据后,写入临时文件的问题还是上传到云存储时出了问题。 以下是云函数问题代码: exports.main = async(event, context) => { const fileName = 'hanziResult.xlsx' await rp(encodeURI("https://test.haijie001.top/createHanzi?paperType=01&hanziContent=测试数据")).pipe(fs.createWriteStream(fileName)).on('close', function() { const fileStream = fs.createReadStream(fileName) cloud.uploadFile({ cloudPath: "hanziResult.xlsx", fileContent: fileStream, }) }); return "finish"; }
2019-10-23