C#实现七牛云存储

简介: 云存储,就是把本地的资源文件存放至网络上,可以公网访问。相当于网盘功能,感觉非常方便。 这里介绍的是七牛云存储。有兴趣的可以去官方网站详看 根据官网的介绍,本身是提供SDK的,下载地址,大家可以根据自己开发的应用程序,下载对应的SDK包。

云存储,就是把本地的资源文件存放至网络上,可以公网访问。相当于网盘功能,感觉非常方便。

这里介绍的是七牛云存储。有兴趣的可以去官方网站详看

根据官网的介绍,本身是提供SDK的,下载地址,大家可以根据自己开发的应用程序,下载对应的SDK包。我下载的是C#版本,参考对应的API文档,会发现最新SDK源码和API文档不一致。是的,文档还没有及时更新

因此,我在这里重新封装一层,直接调用即可。代码如下

 

先定义若干属性(注册七牛用户时,由系统发放)

    public static string AccessKey = null;
    public static string SecretKey = null;
    public static string Bucket = null;
    public static string UrlPrefix { get; set; }  

 

上传文件

        public static void UploadFile(string localFile, string saveKey)
        {
            // 上传策略
            PutPolicy putPolicy = new PutPolicy();

            // 设置要上传的目标空间
            putPolicy.Scope = QiniuUtil.Bucket;

            // 上传策略的过期时间(单位:秒)
            putPolicy.SetExpires(3600);

            //// 文件上传完毕后,在多少天后自动被删除
            //putPolicy.DeleteAfterDays = 1;

            // 生成上传凭证
            //参考地址:https://segmentfault.com/q/1010000008205978
            string jsonParam = JsonHelper.GetJsonByObject(putPolicy);
            Mac mac = new Mac(QiniuUtil.AccessKey, QiniuUtil.SecretKey);
            string uploadToken = Auth.CreateUploadToken(mac, jsonParam);

            FormUploader upLoader = new FormUploader(false);
            HttpResult result = upLoader.UploadFile(localFile, saveKey, uploadToken);
            if (result.Code != 200)
            {
                throw new Exception(result.RefText);
            }

            return;
        }

  

下载文件

        public static void DownloadFile(string url, string localFileFullName)
        {
            //文件链接地址:http://oio2cxdal.bkt.clouddn.com/1/20170213231810.jpg
            DownloadManager.Download(url, localFileFullName);
        }

   

删除文件

        public static void DeleteFile(string saveKey)
        {
            Mac mac = new Mac(QiniuUtil.AccessKey, QiniuUtil.SecretKey);
            BucketManager bm = new BucketManager(mac);

            bm.Delete(QiniuUtil.Bucket, saveKey);
        }  

SDK中还有其他方法,比如:断点续传之类的,如有需要可以继续封装

 

调用代码更简单

    QiniuUtil.AccessKey = "";
    QiniuUtil.SecretKey = "";
    QiniuUtil.Bucket = "";
    QiniuUtil.UrlPrefix = "";
    
    string saveKey = @"1/20170213231810.jpg";
    
    ////(OK)上传文件
    //string localFile = @"d:\TestImage2.jpg";            
    //QiniuUtil.UploadFile(localFile, saveKey);
    
    ////(OK)下载文件
    //string localFile = @"d:\111.jpg";
    //QiniuUtil.DownloadFile("http://oio2cxdal.bkt.clouddn.com/1/20170213231810.jpg", localFile);
    
    //(OK)删除文件
    QiniuUtil.DeleteFile(saveKey);

  

 

要注意的是,七牛会根据地区分配它的服务器,也就是说,如果你在华南,就不能使得华东的服务器操作。这里要修改下源码,位置如下

没有源码,直接调用方法Config.SetZone即可

修改所在区域.png

 

七牛的图片地址

看,是不是so easy

 

相关文章
|
安全 关系型数据库 Linux
一文教你搭建个人网盘filerun,拥有私人文件服务器
一文教你搭建个人网盘filerun,拥有私人文件服务器
一文教你搭建个人网盘filerun,拥有私人文件服务器
|
Python
自动迁移百度网盘文件到阿里网盘,告别小水管
自动迁移百度网盘文件到阿里网盘,告别小水管
9401 0
自动迁移百度网盘文件到阿里网盘,告别小水管
|
缓存 数据安全/隐私保护 对象存储
Hugo 网站优化(7): 把我图床搬到又拍云 (upyun) 了, 开始水印防盗
Hugo 网站优化(7): 把我图床搬到又拍云 (upyun) 了, 开始水印防盗
184 0
Hugo 网站优化(7): 把我图床搬到又拍云 (upyun) 了, 开始水印防盗
|
Python
金山云文档批量下载
金山云文档批量下载
940 0
|
Java 开发工具 Android开发
autojs之七牛直播云
使用场景 播放视频, 更多控制 效果展示
253 0
autojs之七牛直播云
|
存储 负载均衡 JavaScript
Markdown 拓展-免费图床/网盘方案
前言 最近时常在 gitee.io 上写一些 markdown 格式的文章,所以亟需获取免费的图床服务。要求是最好还能自定义文件名。
796 0
Markdown 拓展-免费图床/网盘方案
|
存储 Serverless 云计算
体验有礼 | 1 分钟 Serverless 极速部署个人网盘,真网盘真好用!
只需“几次”点击,即可完成 1 个场景体验,部署一个真实、可长期使用专属个人网盘!
体验有礼 | 1 分钟 Serverless 极速部署个人网盘,真网盘真好用!
|
前端开发 Cloud Native JavaScript
云开发十分钟托管快速静态博客-学习报告
云开发十分钟托管快速静态博客-学习报告
131 0
漫画解读:唐僧师徒如何帮助大唐官网打造CDN+OSS完美架构?
当大唐文化官网用户越来越多,用户访问慢、视频卡顿不流畅、流量经费太贵等问题频频出现,大唐皇帝请唐僧师徒出马,将原有架构做了改动,改动之后究竟有何奇效?看漫画,找答案!
1696 0
漫画解读:唐僧师徒如何帮助大唐官网打造CDN+OSS完美架构?
|
运维 安全 对象存储
开放下载!《CDN排坑指南》
阿里云工程师多年从业经验,真实案例排坑总结,一书详解CDN经典问题排查要点。
开放下载!《CDN排坑指南》