如下写法不支持吗?
const stream = fs.readFileSync(filePath)
return {
mpserverlessComposedResponse: true, // 使用阿里云返回集成响应是需要此字段为true
statusCode: 200,
headers: {
'content-type': 'application/octet-stream',
},
body: stream
}
错误信息
{
"success": false,
"error": {
"code": "InvalidComposedResponseBody",
"message": "The Body of ComposedResponse is not valid."
}
}
那我应该如何返回zip格式的文件,让前端下载,因为一些原因无法直接放到云储存下。需要用代码对文件做一些处理。我尝试过使用base64的方法,文件过大时不太行。
hhyang (作者)
我这个业务不是前端上传文件 然后保存云存储,是前端下载文件,云函数生成数据包zip提供给前端下载
2023-06-21 13:57
DCloud_uniCloud_VK
回复 hhyang: 云端也可以上传文件到云存储的,然后前端下载文件。这样更省流量,毕竟CDN流量比云函数流量便宜很多。
2023-06-21 14:04
hhyang (作者)
回复 DCloud_uniCloud_VK: 行 我处理下
2023-06-21 14:08
DCloud_uniCloud_VK
回复 hhyang: 然后定期删除下文件即可,现在阿里云支持目录了,你就可以定期直接删除目录即可
2023-06-21 14:11
hhyang (作者)
回复 DCloud_uniCloud_VK: 我想了下 那个阿里云的云储存没办法设置文件及目录权限,就算半个小时删除一次,也有漏洞,还是得云函数控制直接输出zip
2023-06-21 16:17
hhyang (作者)
回复 DCloud_uniCloud_VK: 另外我函数URL化之后,云函数中调用
uniCloud.uploadFile
被认为了前端调用,使劲给我报这个错:使用
2023-06-21 16:28
DCloud_uniCloud_VK
回复 hhyang: 那你试试这样
2023-06-21 16:45
hhyang (作者)
回复 DCloud_uniCloud_VK: 你看我下面的回复DCloud_uniCloud_WYQ的,有大小限制,我的zip有2M左右,没办法相应完成,还有其他方法能完成这个业务?
2023-06-21 16:49
DCloud_uniCloud_VK
回复 hhyang: 没有了
2023-06-21 16:51
hhyang (作者)
回复 DCloud_uniCloud_VK: 那不完犊子了,另外我函数URL化之后,云函数中调用
uniCloud.uploadFile
被认为了前端调用,这个是bug还是什么有意为之?2023-06-21 17:01
DCloud_uniCloud_VK
回复 hhyang: 应该是你写错了, url化后也可以用uniCloud.uploadFile , 在云函数中必须用await 不能用回调方式
2023-06-21 17:05
DCloud_uniCloud_VK
同时仔细看报错的行数, 到底是哪个代码问题
2023-06-21 17:06