【发布时间】:2019-02-16 11:10:54
【问题描述】:
我正在尝试在上传时获取总视频大小的上传字节,以便能够实现上传栏并在从停止的地方中断的情况下恢复上传,我正在使用 vimeo 上传可恢复的方法;上传工作正常,但我坚持使用 onUploadProgress 功能。
let vimeoAccessTokens = process.env.MIX_VIEMO_ACCESS_TOKEN
let videoCreate = Axios.create()
delete videoCreate.defaults.headers.common['X-CSRF-TOKEN']
delete videoCreate.defaults.headers.common['X-Requested-With']
videoCreate({
method: 'POST',
url: 'https://api.vimeo.com/me/videos',
headers: {
'Authorization': 'bearer ' + vimeoAccessTokens,
'Accept': 'application/vnd.vimeo.*+json;version=3.4',
'Content-Type': 'application/json'
},
data: {
"upload": {
"approach": "tus",
"size": this.videoFile.size
}
}
}).then(response => {
let videoUri = response.data.uri
let uploadLink = response.data.upload.upload_link
let videoUpload = Axios.create()
videoUpload({
method: 'PATCH',
url: uploadLink,
headers: {
'Tus-Resumable': '1.0.0',
'Upload-Offset': 0,
'Content-Type': 'application/offset+octet-stream',
'Accept': 'application/vnd.vimeo.*+json;version=3.4'
},
data: this.videoFile,
onUploadProgress(){
Axios.head(uploadLink, {
headers: {
'Tus-Resumable': '1.0.0',
'Accept': 'application/vnd.vimeo.*+json;version=3.4'
}
}).then(uploadResp => {
let uploaded = uploadResp.headers['upload-offset']
let total = uploadResp.headers['upload-length']
console.info(uploaded +'of'+ total)
})
}
}).then(resp => {
console.log(resp.status)
}).catch(err => {
window.handleErrors(err)
})
}).catch(error => {
window.handleErrors(error)
})
event.preventDefault()
}
【问题讨论】: