最近在开发抖音openapi,在云函数中携带视频的二进制内容提交到抖音api,研究了好几天怎么都提交不上去,如果在前端使用uni.uploadFile上传则是没有问题,问题出在nodejs只能把视频转成buffer,但是抖音只接受二进制,研究了很久也无法转换。
let uploadTask = uni.uploadFile({ //这样是没问题的
url: url, //接口地址
filePath: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-7b160139-5479-45a7-947b-655f922c0bc2/80a38803-a522-4270-81a7-d7b1283bb727.mp4',
name: 'video',
formData: {
"Content-Type": "video/mp4",
},
complete(e) {
console.log(e)
}
})
node只能传输buffer无法转成二进制我哭了呀 下面是云函数 是有问题的
let mp4 = 'http://vkceyugu.cdn.bspapp.com/VKCEYUGU-7b160139-5479-45a7-947b-655f922c0bc2/80a38803-a522-4270-81a7-d7b1283bb727.mp4'
const localFile = await uniCloud.httpclient.request(mp4, {
method: 'GET',
})
let tiktokOpenId = 'f57bbc30-0208-41ca-826d-13e6bxxxxxxxxxxxxxx';
let tiktokAccessToken = 'act.d6f40dfdf39366e094720d3a00ddfaxxxxxxxx';
let url = `https://open.douyin.com/video/upload?open_id=${tiktokOpenId}&access_token=${tiktokAccessToken}`;
var formData = new FormData();
formData.append("Content-Type","video/mp4");
formData.append('video',localFile.data);
let config = {
headers: { "content-type": "multipart/form-data;","boundary":""}
};
try{
let res = await axios.post(url,formData,config);
return res.data;
}catch(e){
return e
}
求解答~ 跪谢
解答出来 奉上红包88元
刘紫旌 (作者)
formData.append('video',localFile.data); 我已经使用这个了,还是不行
2021-03-02 21:18
DCloud_uniCloud_WYQ
https://github.com/form-data/form-data#void-append-string-field-mixed-value--mixed-options-
加上options试试
2021-03-03 11:20
DCloud_uniCloud_WYQ
回复 刘紫旌: 另外你的文件有多大,能在超时时间内传完吗
2021-03-03 11:22
唐逗逗
回复 刘紫旌: 请问怎么解决的,可否告知下
2022-07-23 16:10