博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
七牛云存储之应用视频上传系统开心得
阅读量:4318 次
发布时间:2019-06-06

本文共 2818 字,大约阅读时间需要 9 分钟。

  • 七牛云存储

        七牛云存储(以下简称七牛),是专为移动时代开发者打造的数据管理平台,为互联网网站和移动App提供数据的在线托管、传输加速以及图片、音视频等富媒体的云处理服务。

  •  产品特性

        1.数据的在线托管

           七牛采用全分布式系统架构以及存储技术,主要存储图片、音视频等静态文件,并对数据实行多机房互备和跨IDC修复,从而保障数据存储的安全性。

        2.数据的传输加速

          七牛支持上传/下载双向加速,对于单个文件的上传没有大小限制,并且支持断点续传。七牛在全国部署了500多个加速节点,用户可以选择任意的IDC就近上传下载

        3.云端数据处理

         七牛提供丰富的图片处理服务,例如缩略图、图文混排、水印、自定义裁剪区域、防盗链,原图保护等。七牛还支持常见的ffmpeg音视频格式转换,视频取帧以及流媒体传输协议(HLS)。

        4.提供了10G存储空间,就一个月也是10G的流量

  •     应用心得

         1.官方提供比较全面的SDK,不过对于C#SDK来说,有些地方还没有完善,如持久性格式转化存储

         2.有时候返回进度值百分比超过100%的BUG,需要自己的修改SDK

         3.没有提供以编程的方式创建空间,在提供给多用户使用时,只能通过修改文件前缀来处理

         4.上传核心代码

             

string[] files = Dialog.FileNames;//所有文件                BindingList
UpLoadFileCurr = GrUpLoadList.DataSource as BindingList
?? new BindingList
();//当前列表里的数据 var FileCurr = files.Where(f => ActSize(f) != 0 && (UpLoadFileCurr.Count == 0 || !UpLoadFileCurr.Any(UF => UF.FileName == f))).Select(key => new UpLoadInfo() { FileName = key, UpLoadState = "待上传", FileSize = ActSize(key), UpLoadType = UpLoadType.NotUpload }).ToList();//过滤相同的文件名
View Code

     5读取数据列表代码

     

RSFClient target = new RSFClient(UserInfo.Bucket); // TODO: 初始化为适当的值                target.Marker = UserInfo.Prefix;                target.Prefix = UserInfo.Prefix;                target.Limit = -1;                DumpRet actual = target.ListPrefix(UserInfo.Bucket, UserInfo.Prefix);                List
fileList = new List
(); Func
fun = (lTime) => { DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); TimeSpan toNow = new TimeSpan(lTime); return dtStart.Add(toNow); }; int Index = 0; Func
getindex = () => { return ++Index; }; //大小字节转为KB Func
ActSize = (filesize) => { decimal reSize = (decimal)filesize / 1024; int m = reSize > 1 ? 0 : 2; return Math.Round(reSize, m); }; Func
FunFileName = (filename) => { int Pos = UserInfo.CurrShowId.ToString().Length + 1; return filename.Substring(Pos, filename.Length - Pos); }; if (actual.Items == null) actual.Items = new List
(); var Binding = new BindingList
(actual.Items.Select(f => new FileInfo() { FileName = FunFileName(f.Key), CreateTime = fun(f.PutTime), FileSize = ActSize(f.FSize), Id = getindex() }).ToList()); Action actBind = () => { grList.DataSource = Binding; GrLoading.Stop(); GrLoading.Hide(); }; base.Invoke(actBind);
View Code

 

     

转载于:https://www.cnblogs.com/gzalrj/p/3399810.html

你可能感兴趣的文章
批量Excel数据导入Oracle数据库(引用 自 wuhuacong(伍华聪)的专栏)
查看>>
处理移动障碍
查看>>
优化VR体验的7个建议
查看>>
2015年创业中遇到的技术问题:21-30
查看>>
《社交红利》读书总结--如何从微信微博QQ空间等社交网络带走海量用户、流量与收入...
查看>>
JDK工具(一)–Java编译器javac
查看>>
深入.NET框架与面向对象的回顾
查看>>
改变label中的某字体颜色
查看>>
七牛云存储之应用视频上传系统开心得
查看>>
struts2日期类型转换
查看>>
Spark2-数据探索
查看>>
Http和Socket连接区别
查看>>
Angular2,Springboot,Zuul,Shiro跨域CORS请求踩坑实录
查看>>
C语言中操作符的优先级大全
查看>>
pgpool-II - 介绍
查看>>
Alpha冲刺(10/10)——2019.5.2
查看>>
图书管理系统用例
查看>>
Microsoft patterns & practices 学习笔记(0)
查看>>
在腾讯云上创建您的SQL Cluster(4)
查看>>
部署在腾讯云的公益网站遭受了一次CC攻击
查看>>