C#实现七牛云存储
云存储,就是把本地的资源文件存放至网络上,可以公网访问。相当于网盘功能,感觉非常方便。
这里介绍的是七牛云存储。有兴趣的可以去官方网站详看
---------------------------------------------------------------------------------
博客搬家啦,新地址:
---------------------------------------------------------------------------------
根据官网的介绍,本身是提供SDK的,下载地址,大家可以根据自己开发的应用程序,下载对应的SDK包。我下载的是C#版本,参考对应的API文档,会发现最新SDK源码和API文档不一致。是的,文档还没有及时更新
因此,我在这里重新封装一层,直接调用即可。代码如下
先定义若干属性(注册七牛用户时,由系统发放)
1 2 3 4 | public static string AccessKey = null ; public static string SecretKey = null ; public static string Bucket = null ; public static string UrlPrefix { get ; set ; } |
上传文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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 ; } |
下载文件
1 2 3 4 5 | public static void DownloadFile( string url, string localFileFullName) { //文件链接地址:http://oio2cxdal.bkt.clouddn.com/1/20170213231810.jpg DownloadManager.Download(url, localFileFullName); } |
删除文件
1 2 3 4 5 6 7 | 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中还有其他方法,比如:断点续传之类的,如有需要可以继续封装
调用代码更简单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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即可
看,是不是so easy
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述