123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- const { default: axios } = require('axios')
- const createOption = require('../util/option.js')
- module.exports = async (query, request) => {
- let ext = 'mp3'
- // if (query.songFile.name.indexOf('flac') > -1) {
- // ext = 'flac'
- // }
- if (query.songFile.name.includes('.')) {
- ext = query.songFile.name.split('.').pop()
- }
- const filename = query.songFile.name
- .replace('.' + ext, '')
- .replace(/\s/g, '')
- .replace(/\./g, '_')
- const bucket = 'jd-musicrep-privatecloud-audio-public'
- // 获取key和token
- const tokenRes = await request(
- `/api/nos/token/alloc`,
- {
- bucket: bucket,
- ext: ext,
- filename: filename,
- local: false,
- nos_product: 3,
- type: 'audio',
- md5: query.songFile.md5,
- },
- createOption(query, 'weapi'),
- )
- // 上传
- const objectKey = tokenRes.body.result.objectKey.replace('/', '%2F')
- try {
- const lbs = (
- await axios({
- method: 'get',
- url: `https://wanproxy.127.net/lbs?version=1.0&bucketname=${bucket}`,
- })
- ).data
- await axios({
- method: 'post',
- url: `${lbs.upload[0]}/${bucket}/${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,
- }
- }
|