鍍金池/ 問答/云計(jì)算  HTML5  HTML/ angular 怎么使用aliyun-sdk

angular 怎么使用aliyun-sdk

在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>

回答
編輯回答
巫婆

沒代碼不知道你說的什么。

多半是時(shí)序問題吧。你貼的代碼,只有 videoUpload 的定義,也沒有使用的地方。

2017年11月30日 13:45
編輯回答
解夏

謝謝邀請(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

2017年8月8日 06:31
編輯回答
笑忘初

謝邀,圖太小看不清,建議在開發(fā)時(shí)不用min壓縮版本的文件。
1 來調(diào)試不方便 2 來壓縮后有時(shí)候會(huì)移除一些顯示錯(cuò)誤信息的代碼。

2017年1月20日 22:14