|
|
|
const axios = require('axios')
|
|
|
|
module.exports = async (query, request) => {
|
|
|
|
// 获取key和token
|
|
|
|
const tokenRes = await request(
|
|
|
|
'POST',
|
|
|
|
`https://music.163.com/weapi/nos/token/alloc`,
|
|
|
|
{
|
|
|
|
bucket: 'jd-musicrep-privatecloud-audio-public',
|
|
|
|
ext: 'mp3',
|
|
|
|
filename: query.songFile.name.replace('.mp3', ''),
|
|
|
|
local: false,
|
|
|
|
nos_product: 3,
|
|
|
|
type: 'audio',
|
|
|
|
md5: query.songFile.md5,
|
|
|
|
},
|
|
|
|
{ crypto: 'weapi', cookie: query.cookie, proxy: query.proxy },
|
|
|
|
)
|
|
|
|
|
|
|
|
// 上传
|
|
|
|
const objectKey = tokenRes.body.result.objectKey.replace('/', '%2F')
|
|
|
|
try {
|
|
|
|
await axios({
|
|
|
|
method: 'post',
|
|
|
|
url: `http://45.127.129.8/jd-musicrep-privatecloud-audio-public/${objectKey}?offset=0&complete=true&version=1.0`,
|
|
|
|
headers: {
|
|
|
|
'x-nos-token': tokenRes.body.result.token,
|
|
|
|
'Content-MD5': query.songFile.md5,
|
|
|
|
'Content-Type': 'audio/mpeg',
|
|
|
|
'Content-Length': String(query.songFile.size),
|
|
|
|
},
|
|
|
|
data: query.songFile.data,
|
|
|
|
maxContentLength: Infinity,
|
|
|
|
maxBodyLength: Infinity,
|
|
|
|
})
|
|
|
|
} catch (error) {
|
|
|
|
console.log('error', error.response)
|
|
|
|
throw error.response
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
...tokenRes,
|
|
|
|
}
|
|
|
|
}
|