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