七牛上传视频并转码

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

时间: 2024-10-13 15:11:20

七牛上传视频并转码的相关文章

七牛上传视频添加到队列时视频大小是否添加

最近在做视频分析的项目,遇到了一些关于七牛上传视频文件的问题. 当 选择的视频文件 大于 本地剩余空间 时,则取消上传. 'FilesAdded': function(up, files) { plupload.each(files, function(file,index) { //重点在这里 var fileSize=0; for(var i=0;i<files.length;i++){ fileSize+= Math.ceil(files[i].size/1024/1024); }; //

iOS 客户端获取七牛上传token

一.官方参考文档: 1.上传策略http://developer.qiniu.com/article/developer/security/put-policy.html 2.上传凭证(即uptoken)http://developer.qiniu.com/article/developer/security/upload-token.html 3.下载凭证http://developer.qiniu.com/article/developer/security/download-token.h

七牛云上传视频并截取第一帧为图片(js实现)

本文出自APICloud官方论坛, 感谢论坛版主 东冥羽的分享. 七牛云上传视频并截取第一帧作为视频的封面图. 使用js上传,模块videoPlayer截取第一帧(有专门的截图模块,但是我使用的有点问题,可能是视频源的问题:canvas也能截取,但是有点小bug,比如会截成黑色或白色的图片). 上传一个和上传多个视频 demo运行点这里 需要参数:token值,七牛云域名 *逻辑: 上传一个视频: 点击上传按钮,获取token值,选中视频后开始上传.input file会获取文件的大小,文件名等

七牛云上传视频如何有效做到节省空间

在上传视频的时候,我们通常会保存到第三方[七牛云]平台.不过大多数程序员在系统后台上传视频后,一般都是保存到了本地,如果视频非常多或者视频容量特别大的情况下,那么我们的服务器迟早有一天会满,为了节省空间,下面教大家再上传视频时,如何以有效的节省服务器空间,一般情况下会把这些文件存到第三方,也就是需要我们下载qiniusdk,把qiniusdk放如Vendor目录下. 这里我们以课程视频为例子,实现的hmtl源代码如下:<tr> <td class="text">

七牛上传同名文件为什么没有报错解答

有很多七牛的新用户,会遇到这样一个问题,上传代码中指定了scope为 scope="bucketname" 但是上传一个同样的文件,文件名字也一样,文件的key也一样的文件,没有报已经存在同名资源则会失败的消息. 问题解答 七牛只有在同名文件,不同文件资源的时候才会报614状态码,也就是文件资源已经存在的消息.否则同样会返回200状态码,和hash,key.

七牛---以一个七牛上传的实例小结下AJAX跨域【转】

http://blog.csdn.net/netdxy/article/details/50699842 使用七牛过程中,很多用户或多或少遇到跨域的问题,这篇文章主要介绍下跨域的概念来看什么情况下会出现跨域以及七牛关于跨域的策略. 关于跨域的,说白点就是去别服务器上取东西,域当然是别的服务器,只要协议.域名.端口有任何一个不同,都被当作是不同的域.这里以表单上传结合AJAX请求获取Token上传的Demo为切入点具体看下什么时候会出现跨域. 以下是Demo的代码示例,需要注意的是请求token的

关于七牛上传701错误码解释

Qiniu 七牛问题解答 上传返回701错误码 问题解决方案 使用同一个cxt,上传成功后,再使用该cxt上传一个不同内容的chunk.会返回: {"error":"conflict with uploaded data, please retry"}. cxt 过期(7天), 会返回错误:{"error":"expired context create at 1419069271973950431"}. 内部多个服务不可用.

七牛上传凭证怎样自己写

Qiniu 七牛问题解答 很多人反应上传凭证自己书写的时候出现很多问题.这里我给大家一个范例 问题解决方案 此段代码为c#案例,生成token ak,sk需要创建七牛账户,并在空间秘钥中获取. public String getToken() { Policy policy = new Policy("liuhanlin-work"); // policy.Deadline=1390528576; // policy.PersistentNotifyUrl="";

在七牛上传之后如何自己自定义上传完成处理并在页面显示。

Qiniu 七牛问题解答 很多用户不懂怎么写上传完成后的处理事件.我带大家来写个. 问题解决方案 1,首先要在如下的main.js中做如下的配置修改. /*global Qiniu */ /*global plupload */ /*global FileProgress */ /*global hljs */ $(function() { var uploader = Qiniu.uploader({ runtimes: 'html5,flash,html4', browse_button: