网站内容管理系统上传图片(七牛云存储(以下简称七牛)数据的在线托管七牛)
优采云 发布时间: 2022-03-25 07:01网站内容管理系统上传图片(七牛云存储(以下简称七牛)数据的在线托管七牛)
七牛云存储(以下简称七牛)是专为移动时*敏*感*词*发者打造的数据管理平台。为互联网网站和移动应用程序提供在线数据托管、传输加速和图片、音视频等富媒体。云处理服务。
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();//过滤相同的文件名
查看代码
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);
查看代码