功能:將文件上傳到七牛雲存儲 準備工作 註冊七牛賬號,提交實名認證(基本上1天內內審核通過) 登錄七牛後臺->對象存儲->新建空間 (基本概念:https://developer.qiniu.com/kodo/manual/3978/the-basic-concept) 新建空間後會有免費功能變數名稱可以使 ...
功能:將文件上傳到七牛雲存儲
準備工作
- 註冊七牛賬號,提交實名認證(基本上1天內內審核通過)
- 登錄七牛後臺->對象存儲->新建空間 (基本概念:https://developer.qiniu.com/kodo/manual/3978/the-basic-concept)
- 新建空間後會有免費功能變數名稱可以使用。但是:測試功能變數名稱,限總流量,限單 IP 訪問頻率,限速,僅供測試使用,不能用於自定義功能變數名稱的 CNAME。建議還是使用自己的已經ICP備案的功能變數名稱
- CDN加速功能變數名稱(自己的ICP備案的功能變數名稱)提交後有個處理過程(官方說最多三個小時),處理完成後給你一個CNAME。 如何配置CNAME?
- 配置好CNAME後,接下來實現編碼工作。
編碼實現
- Nuget官方SDK
- 獲取AccessKey,SecretKey。登錄七牛管理後臺->個人信息->秘鑰管理
- 代碼
1 /// <summary> 2 /// 實現將文件上傳到七牛雲 3 /// </summary> 4 /// <param name="stream">文件流</param> 5 /// <param name="fileName">文件名稱</param> 6 /// <returns></returns> 7 public UploadQiNiuResult UploadImgToQiNiu(byte[] stream, string fileName) 8 { 9 Mac mac = new Mac(BlogStatic.QiNiuInfo_AccessKey, BlogStatic.QiNiuInfo_SecretKey); 10 // 上傳策略,參見 11 // https://developer.qiniu.com/kodo/manual/put-policy 12 PutPolicy putPolicy = new PutPolicy(); 13 // 如果需要設置為"覆蓋"上傳(如果雲端已有同名文件則覆蓋),請使用 SCOPE = "BUCKET:KEY" 14 // putPolicy.Scope = bucket + ":" + saveKey; 15 var saveKey = string.Format("BlogImg/{0}/", DateTime.Now.ToString("yyyy/MM/dd")) + fileName; 16 putPolicy.Scope = "blog:" + saveKey; 17 // 上傳策略有效期(對應於生成的憑證的有效期) 18 putPolicy.SetExpires(3600); 19 // 上傳到雲端多少天後自動刪除該文件,如果不設置(即保持預設預設)則不刪除 20 // putPolicy.DeleteAfterDays = 1; 21 string jstr = putPolicy.ToJsonString(); 22 //獲取上傳憑證 23 var uploadToken = Auth.CreateUploadToken(mac, jstr); 24 UploadManager um = new UploadManager(); 25 26 HttpResult result = um.UploadData(stream, saveKey, uploadToken); 27 28 if (result.Code == 200) 29 { 30 return JsonConvert.DeserializeObject<UploadQiNiuResult>(result.Text); 31 } 32 return null; 33 }
- UploadQiNiuResult類
-
1 public class UploadQiNiuResult 2 { 3 public string Hash { get; set; } 4 public string Key { get; set; } 5 }
引用: