在angular中使用aliyun-sdk 上傳視頻報(bào)錯(cuò),但是直接直接使用的話是沒有問題的,一旦集成到angular中就報(bào)錯(cuò),跪求解決
import '../../../config/vod-sdk-upload-1.1.0.min.js';
import '../../../config/aliyun-sdk.min.js';
let VideoUpload = ($timeout, ResourceService) => {
return {
restrict: 'E',
transclude: true,
replace: true,
scope: {
play: '@',
cover: '@',
source: '@',
},
template: require('../html/video-upload.html'),
link: function(scope, elem, attrs) {
$timeout(()=>{
var uploadAuth = 'eyJTZWN1cml0eVRva2VuIjoiQ0FJU3pBUjFxNkZ0NUIyeWZTaklxWURUQ05lTXRlMWc4b0c2Wkh6L2t6Yy9QN2RXZ3BiOGl6ejJJSHBLZVhkdUFlQVhzL28wbW1oWjcvWVlsclVxRnM0YUZSZVVOcEF2dHNVR3ExajdKcGZadjh1ODRZQURpNUNqUWNGc3hJTm9uNTI4V2Y3d2FmK0FVQm5HQ1RtZDVNY1lvOWJUY1RHbFFDWnVXLy90b0pWN2I5TVJjeENsWkQ1ZGZybC9MUmRqcjhsbzF4R3pVUEcyS1V6U24zYjNCa2hsc1JZZTcyUms4dmFIeGRhQXpSRGNnVmJtcUpjU3ZKK2pDNEM4WXM5Z0c1MTlYdHlwdm9weGJiR1Q4Q05aNXo5QTlxcDlrTTQ5L2l6YzdQNlFIMzViNFJpTkw4L1o3dFFOWHdoaWZmb2JIYTlZcmZIZ21OaGx2dkRTajQzdDF5dFZPZVpjWDBha1E1dTdrdTdaSFArb0x0OGphWXZqUDNQRTNyTHBNWUx1NFQ0OFpYVVNPRHREWWNaRFVIaHJFazRSVWpYZEk2T2Y4VXJXU1FDN1dzcjIxN290ZzdGeXlrM3M4TWFIQWtXTFg3U0IyRHdFQjRjNGFFb2tWVzRSeG5lelc2VUJhUkJwYmxkN0JxNmNWNWxPZEJSWm9LK0t6UXJKVFg5RXoycExtdUQ2ZS9MT3M3b0RWSjM3V1p0S3l1aDRZNDlkNFU4clZFalBRcWl5a1QwdEZncGZUSzFSemJQbU5MS205YmFCMjUvelcrUGREZTBkc1Znb0xGS0twaUdXRzNSTE5uK3p0Sjl4YUZ6ZG9aeUlrL1dWcXNnNVNGQit1NGdIVTEvQWY4b3k4bGxqL3FYcjhWT044ZVB1VlRmbzNCSmhxb2FEb2RZZnRCTTZKNjM0MjdMTmhGT0U0aXpNTzV0ZXNkek1SV2hpVFM2d2YzRkUyLzJJamhvRjNVdGJ6VHpxWlU1UHVnblBqampvTFpSTGlPYjM3M2RGRTdwVnArUFVjRDZwNVY1OEV1aU81N3NicUUyVnVoU2xrSjBhZ0FFQjJySmlyUEkxUXVWekhseWxGMHp3ZVdxSXNCSFVEVnRQeXRkc0w0YUFmSERIWkc4OWcxTzA2WjhJbmRwUk5yZXAwQnk1VzVjNXZjQk9xaEo1QnVQc2kwOFV5cmZQYml5alNYeTJoTVRaOVNlRzJZem9uQW9mdWFDTmo4UVk4US9nOVh4QUJMZmJwMGw5Qm03QzY1NWpCTUR4TUtBWm5RUHNmUDZmcCt1cmV3PT0iLCJBY2Nlc3NLZXlJZCI6IlNUUy5IQ2ZDbThYMkFFQ1FmWk53N2ozOHptU1dpIiwiQWNjZXNzS2V5U2VjcmV0IjoiQTdoWHIxNFNUNW9KakdOYW1ac0Nrb3A2UEdEZFNySzhjaUtKNE1YeUg0RGgiLCJFeHBpcmF0aW9uIjoiMzEyNCJ9';
var uploadAddress = 'eyJFbmRwb2ludCI6Imh0dHBzOi8vb3NzLWNuLXNoYW5naGFpLmFsaXl1bmNzLmNvbSIsIkJ1Y2tldCI6ImluLTIwMTcxMTEzMTAzODUwMDY2LWZ0NzVtbXVmMXYiLCJGaWxlTmFtZSI6InZpZGVvLzMzN0VDQTYxLTE1RkJFNzk5NENCLTE1OTctODM4My0zNzAtOTkyMzIubXA0In0'
var uploader = new VODUpload({
// 文件上傳失敗
'onUploadFailed': function (uploadInfo, code, message) {
console.log("onUploadFailed: file:" + uploadInfo.file.name + ",code:" + code + ", message:" + message);
},
// 文件上傳完成
'onUploadSucceed': function (uploadInfo) {
console.log("object:" + uploadInfo.object, uploadInfo.GetPlayInfo);
console.log("onUploadSucceed: " + uploadInfo.file.name + ", endpoint:" + uploadInfo.endpoint + ", bucket:" + uploadInfo.bucket + ", object:" + uploadInfo.object);
},
// 文件上傳進(jìn)度
'onUploadProgress': function (uploadInfo, totalSize, uploadedSize) {
console.log("onUploadProgress:file:" + uploadInfo.file.name + ", fileSize:" + totalSize + ", percent:" + Math.ceil(uploadedSize * 100 / totalSize) + "%");
},
// STS臨時(shí)賬號(hào)會(huì)過期,過期時(shí)觸發(fā)函數(shù)
'onUploadTokenExpired': function () {
console.log("onUploadTokenExpired");
},
// 開始上傳
'onUploadstarted': function (uploadInfo) {
console.log(uploadInfo);
console.log(uploader);
if (uploadAuth) {
uploader.setUploadAuthAndAddress(uploadInfo, uploadAuth, uploadAddress);
}
console.log("onUploadStarted:" + uploadInfo.file.name + ", endpoint:" + uploadInfo.endpoint + ", bucket:" + uploadInfo.bucket + ", object:" + uploadInfo.object);
}
});
if (uploadAuth) {
uploader.init();
} else if (isSTSMode()) {
// OSS直接上傳:STS方式,安全但是較為復(fù)雜,建議生產(chǎn)環(huán)境下使用。
// 臨時(shí)賬號(hào)過期時(shí),在onUploadTokenExpired事件中,用resumeWithToken更新臨時(shí)賬號(hào),上傳會(huì)續(xù)傳。
uploader.init(accessKeyId, accessKeySecret, secretToken, expireTime);
} else {
// OSS直接上傳:AK方式,簡單但是不夠安全,建議測(cè)試環(huán)境下使用。
uploader.init(accessKeyId, accessKeySecret);
}
document.getElementById("files")
.addEventListener('change', function (event) {
var userData;
if (uploadAuth) {
userData = '{"Vod":{"UserData":"{"IsShowWaterMark":"false","Priority":"7"}"}}';
} else {
userData = '{"Vod":{"Title":"this is title.我是標(biāo)題","Description":"this is desc.我是描述","CateId":"19",\
"Tags":"tag1,tag2,標(biāo)簽3","UserData":"user data"}}';
}
for(var i=0; i<event.target.files.length; i++) {
console.log("add file: " + event.target.files[i].name);
if (uploadAuth) {
// 點(diǎn)播上傳。每次上傳都是獨(dú)立的OSS object,所以添加文件時(shí),不需要設(shè)置OSS的屬性
uploader.addFile(event.target.files[i], null, null, null, userData);
} else {
uploader.addFile(event.target.files[i], endpoint, bucket, objectPre + event.target.files[i].name, userData);
}
}
uploader.startUpload();
});
function start() {
console.log("start upload.");
uploader.startUpload();
}
function isVodMode() {
var uploadAuth = 'eyJTZWN1cml0eVRva2VuIjoiQ0FJU3pBUjFxNkZ0NUIyeWZTaklySzN5SVB1QnRhWVkwWkM4Y0hMaDFVZzZidTFXM3AyZHFqejJJSHBLZVhkdUFlQVhzL28wbW1oWjcvWVlsclVxRnM0YUZSZVVOcEF2dHNVR3ExajdKcGZadjh1ODRZQURpNUNqUWFJN3c1aG9uNTI4V2Y3d2FmK0FVQm5HQ1RtZDVNY1lvOWJUY1RHbFFDWnVXLy90b0pWN2I5TVJjeENsWkQ1ZGZybC9MUmRqcjhsbzF4R3pVUEcyS1V6U24zYjNCa2hsc1JZZTcyUms4dmFIeGRhQXpSRGNnVmJtcUpjU3ZKK2pDNEM4WXM5Z0c1MTlYdHlwdm9weGJiR1Q4Q05aNXo5QTlxcDlrTTQ5L2l6YzdQNlFIMzViNFJpTkw4L1o3dFFOWHdoaWZmb2JIYTlZcmZIZ21OaGx2dkRTajQzdDF5dFZPZVpjWDBha1E1dTdrdTdaSFArb0x0OGphWXZqUDNQRTNyTHBNWUx1NFQ0OFpYVVNPRHREWWNaRFVIaHJFazRSVWpYZEk2T2Y4VXJXU1FDN1dzcjIxN290ZzdGeXlrM3M4TWFIQWtXTFg3U0IyRHdFQjRjNGFFb2tWVzRSeG5lelc2VUJhUkJwYmxkN0JxNmNWNWxPZEJSWm9LK0t6UXJKVFg5RXoycExtdUQ2ZS9MT3M3b0RWSjM3V1p0S3l1aDRZNDlkNFU4clZFalBRcWl5a1QwdEZncGZUSzFSemJQbU5MS205YmFCMjUvelcrUGREZTBkc1Znb0xGS0twaUdXRzNSTE5uK3p0Sjl4YUZ6ZG9aeUlrL1dWcXNnNVNGQit1NGdIVTEvQWY4b3k4bGxqL3FYcjhWT044ZVB1VlRmbzNCSmhxb2FEb2RZZnRCTTZKNjM0MjdMTmhGT0U0aXpNTzV0ZXNkek1SV2hpVFM2d2YzRkUyLzJJamhvRjNVdGJ6VHpxWlU1UHVnblBqampvTFpSTGlPYjM3M2RGRTdwVnArUFVjRDZwNVY1OEV1aU81N3NicUUyVnVoU2xrSjBhZ0FFSEs3MHJzczIzMFpJSEcwcWFtMEpldXp2K0MzWEJRdzFjUmRXZ2RyS1dxS1JQUnlYb01COFRSNy9XOUN1dDl2Z2tuWHpXaGFWS1o0NHBabXlwaUNSZXNmTitkWmIxbHRlR1I5OE5hZzc4dXJtbjVPeWRVeTRVYnpIT2R2cmRlZUkycVFPSUl3TldmZHg1OUhhYlZRKzR6OXJxY0FaZjRUV2lIKzVkQXdNTDN3PT0iLCJBY2Nlc3NLZXlJZCI6IlNUUy5NbkdrQTVYeTlmUldyVFAxSG9iYnoxWDZIIiwiQWNjZXNzS2V5U2VjcmV0IjoiMlZxSlNma1F3RllobVUzRXNFbjFMazhIRjFyV3FBYVFOemZlNkZBZW5xa2YiLCJFeHBpcmF0aW9uIjoiMjU1MCJ9';
return (uploadAuth && uploadAuth.length > 0);
}
})
}
}
}
VideoUpload.$inject = ['$timeout', 'ResourceService'];
module.exports = (ngMold) => {
ngMold.directive('videoUpload', VideoUpload);
}
<div>
上傳管理
<input type="file" name="file" id="files" multiple/>
<hr/>
<button type="button" ng-click="start()">開始上傳</button>
</div>
謝謝邀請(qǐng),就說兩點(diǎn)
第一點(diǎn)和問題本身沒關(guān)系,只是建議以后對(duì)于問題的描述盡量清晰簡明,光貼代碼或者截圖并不能提供更多的信息供幫你解決問題的人參考,建議增加一些說明,比如你在哪里遇到問題了,具體是什么問題等等的描述
第二點(diǎn)是我關(guān)于問題的一些推測(cè),因?yàn)槲野l(fā)現(xiàn)你加了webpack的標(biāo)簽,同時(shí)在模塊化方面使用了import/export,對(duì)于sdk使用了import
的語法,等價(jià)于直接把sdk.js的打包到bundle.js,這種寫法如果sdk.js符合umd模塊化標(biāo)準(zhǔn)是沒有問題,但是如果它僅僅提供是在window加一個(gè)的全局變量則需要在webpack中配置一些類庫變量暴露規(guī)則,詳見external
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。