这两天准备把当前项目全部用SDK2.0的方式,重写视频点播相关的板块,但是仅仅上传这一步今天就搞晕了,执行结果"statusCode":200,但是后台一直显示上传中,阿里云OpenAPI这大概率是什么方面的问题呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的情况,执行结果返回"statusCode":200
,但后台显示上传中,这可能是由于以下几个方面的问题导致的。以下是详细分析和解决建议:
在使用SDK上传文件时,上传凭证(UploadAuth和UploadAddress)或STS Token是必须的。如果这些参数未正确设置或已过期,可能会导致上传状态异常。
问题原因:
AccessKeyId
、AccessKeySecret
或SecretToken
未正确传递或已过期。UploadAuth
或UploadAddress
未正确设置。解决方法:
uploader.setSTSToken(uploadInfo, info.AccessKeyId, info.AccessKeySecret, info.SecretToken);
或者:
uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress, videoId);
如果上传过程中STS Token过期,需在onUploadTokenExpired
回调中重新获取并调用:
uploader.resumeUploadWithSTSToken(info.AccessKeyId, info.AccessKeySecret, info.SecretToken);
注意:确保STS Token的有效期足够长,避免因Token过期导致上传中断。
上传过程中,onUploadProgress
回调用于同步上传进度。如果该回调未正确实现或未绑定到上传器实例,可能会导致后台显示上传中,但实际上上传已完成。
问题原因:
onUploadProgress
回调未正确绑定或逻辑错误。onUploadSucceed
回调。解决方法:
onUploadProgress
和onUploadSucceed
回调函数。例如:uploader.on('onUploadProgress', function (uploadInfo, progress) {
console.log(`上传进度: ${progress * 100}%`);
});
uploader.on('onUploadSucceed', function (uploadInfo) {
console.log('上传成功:', uploadInfo);
});
onUploadSucceed
回调能够正确触发并处理上传结果。如果上传过程中发生中断(如网络波动或页面刷新),SDK会尝试从上次完成的位置继续上传。如果断点续传逻辑未正确实现,可能会导致上传状态异常。
问题原因:
videoId
未正确传递或未与上传文件关联。解决方法:
onUploadstarted
回调中检查videoId
是否存在,并根据情况调用不同的方法:onUploadstarted: function (uploadInfo) {
if (!uploadInfo.videoId) {
// 新文件上传,设置上传凭证和地址
uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress, videoId);
} else {
// 断点续传,刷新上传凭证
uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress);
}
}
getCheckpoint
方法获取断点信息,确保上传器能够正确恢复上传:var checkpoint = uploader.getCheckpoint(file);
上传文件时,需要正确设置文件类型和上传参数。如果参数配置错误,可能会导致上传状态异常。
问题原因:
paramData
未正确设置,导致上传后无法正确解析文件信息。解决方法:
addFile
方法时正确设置参数。例如:uploader.addFile(file, null, null, null, '{"Vod":{}}');
paramData
中设置必要的属性,如Title
、CateId
等。例如:{
"Vod": {
"Title": "测试视频",
"CateId": "123456",
"TemplateGroupId": "templateGroupId"
}
}
如果上述问题均排除,可能是网络或服务端问题导致上传状态异常。
问题原因:
解决方法:
根据您的描述,问题大概率与上传凭证设置或上传进度回调有关。建议按照以下步骤排查: 1. 确保上传凭证或STS Token正确设置且未过期。 2. 检查onUploadProgress
和onUploadSucceed
回调是否正确实现。 3. 验证断点续传逻辑是否正常工作。 4. 确认文件类型和参数配置无误。
如果问题仍未解决,建议联系阿里云技术支持,提供详细的日志信息以便进一步排查。