七牛上傳視頻並轉碼


   /// <summary>
        /// 上傳視頻到七牛並轉碼
        /// </summary>
        /// <param name="saveKey"></param>
        /// <param name="localFile"></param>
        public static void UpLoadVideo(string saveKey, string localFile)
        {
            Mac mac = new Mac(ACCESS_KEY, SECRET_KEY);
            PutPolicy putPolicy = new PutPolicy();
            // 如果需要設置為"覆蓋"上傳(如果雲端已有同名文件則覆蓋),請使用 SCOPE = "BUCKET:KEY"
            // putPolicy.Scope = bucket + ":" + saveKey;
            putPolicy.Scope = bucket;
            // 上傳策略有效期(對應於生成的憑證的有效期)          
            putPolicy.SetExpires(3600);
            putPolicy.PersistentPipeline = "UpLoadVideo";
            //進行視屏轉碼 (轉成 mp4 資源和對原資源進行 HLS 切片)
            putPolicy.PersistentOps = "avthumb/mp4;avthumb/m3u8/noDomain/1/segtime/15/vb/440k";
            // 上傳到雲端多少天后自動刪除該文件,如果不設置(即保持默認默認)則不刪除
            //putPolicy.DeleteAfterDays = 1;
            // 生成上傳憑證,參見
            // https://developer.qiniu.com/kodo/manual/upload-token            
            //string jstr = putPolicy.ToJsonString();
            string token = Auth.createUploadToken(putPolicy, mac);
            UploadOptions uploadOptions = null;
            // 上傳完畢事件處理
            UpCompletionHandler uploadCompleted = new UpCompletionHandler(OnUploadCompleted);
            // 方式1:使用UploadManager
            //默認設置 Qiniu.Common.Config.PUT_THRESHOLD = 512*1024;
            //可以適當修改,UploadManager會根據這個閾值自動選擇是否使用分片(Resumable)上傳    
            UploadManager um = new UploadManager();
            um.uploadFile(localFile, saveKey, token, uploadOptions, uploadCompleted);
            //HttpResult result = um.uploadFile(localFile, saveKey, token);
        }

        public static void UpLoadImg(string saveKey, string localFile)
        {
            Mac mac = new Mac(ACCESS_KEY, SECRET_KEY);
            PutPolicy putPolicy = new PutPolicy();
            // 如果需要設置為"覆蓋"上傳(如果雲端已有同名文件則覆蓋),請使用 SCOPE = "BUCKET:KEY"
            // putPolicy.Scope = bucket + ":" + saveKey;
            putPolicy.Scope = bucket;
            // 上傳策略有效期(對應於生成的憑證的有效期)          
            putPolicy.SetExpires(3600);
            putPolicy.PersistentPipeline = "UpLoadVideo";
            //進行視屏轉碼 (轉成 mp4 資源和對原資源進行 HLS 切片)
            //putPolicy.PersistentOps = "avthumb/mp4;avthumb/m3u8/noDomain/1/segtime/15/vb/440k";
            // 上傳到雲端多少天后自動刪除該文件,如果不設置(即保持默認默認)則不刪除
            //putPolicy.DeleteAfterDays = 1;
            // 生成上傳憑證,參見
            // https://developer.qiniu.com/kodo/manual/upload-token            
            //string jstr = putPolicy.ToJsonString();
            string token = Auth.createUploadToken(putPolicy, mac);
            UploadOptions uploadOptions = null;
            // 上傳完畢事件處理
            UpCompletionHandler uploadCompleted = new UpCompletionHandler(OnUploadCompleted);
            // 方式1:使用UploadManager
            //默認設置 Qiniu.Common.Config.PUT_THRESHOLD = 512*1024;
            //可以適當修改,UploadManager會根據這個閾值自動選擇是否使用分片(Resumable)上傳    
            UploadManager um = new UploadManager();
            um.uploadFile(localFile, saveKey, token, uploadOptions, uploadCompleted);
            //HttpResult result = um.uploadFile(localFile, saveKey, token);
        }
        private static void OnUploadCompleted(string key, ResponseInfo respInfo, string respJson)
        {
            Logger.LogHelper.WriteInfoLog(respJson);
            // respInfo.StatusCode
            // respJson是返回的json消息,示例: { "key":"FILE","hash":"HASH","fsize":FILE_SIZE }
        }

        /// <summary>
        /// 七牛空間名
        /// </summary>
        public static string qnSpace
        {
            get
            {
                return ConfigurationManager.AppSettings["qnSpace"];
            }
        }
        /// <summary>
        /// 項目名
        /// </summary>
        public static string itemname
        {
            get
            {
                return ConfigurationManager.AppSettings["itemname"];
            }
        }
        /// <summary>
        /// 外鏈地址
        /// </summary>
        public static string outlink
        {
            get
            {
                return ConfigurationManager.AppSettings["outlink2"];
            }
        }

 關於一些配置方面需要注意的問題參考http://www.cnblogs.com/chongyao/p/6644970.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM