zoukankan      html  css  js  c++  java
  • C#实现七牛云存储

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

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

    根据官网的介绍,本身是提供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

  • 相关阅读:
    1059 C语言竞赛
    1058 选择题
    1057 数零壹
    1056 组合数的和
    1055 集体照
    Mysql--分库分表
    Mysql--改表结构
    Mysql--开始阶段
    Mysql--常用语句
    Mysql--grant授权
  • 原文地址:https://www.cnblogs.com/xiyang1011/p/7795731.html
Copyright © 2011-2022 走看看