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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM