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即可

看,是不是so easy
C#实现七牛云存储的更多相关文章
- Go语言实战 - 网站性能优化第一弹“七牛云存储”
由于用户纷纷反应山坡网的打开速度比较慢,所以两天前我们决定把服务器从linode迁移到阿里云. 整个迁移过程非常平滑,基本上一个小时就完成了.而且阿里云的配套设施提供的也很不错,运行状态监控什么的都有 ...
- JavaWeb结合七牛云存储搭建个人相册服务
JavaWeb结合七牛云存储搭建个人相册服务 一.引言1. 课程概述 相信很多人都知道网站一般会有很多图片,对于小型网站来说,图片放在网站服务器上不算什么,但当图片数量很大时,会造成服务器很臃肿,相应 ...
- 《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)
两个月前的发布的博客<介绍一款开源的类Excel电子表格软件>引起了热议:在博客园有近2000个View.超过20个评论. 同时有热心读者电话咨询如何能够在SpreadDesing中实现存 ...
- 为七牛云存储开发的PHP PEAR 包:Services_Qiniu
七牛云存储Qiniu Resource (Cloud) Storage:用于存储图片.apk等静态资源. 优点: 1.使用七牛带宽和CDN,速度快,不占用开发者服务器. 2.支持图片任意格式.任意分辨 ...
- 如何在WordPress中使用七牛云存储
序:七牛云存储可以方便的将网站的图片等数据镜像到七牛云存储的空间,直接从云端将数据返回给用户.这样可以大大节省网站的空间,提升网站的访问速度. 真正显示一键实现WordPress博客静态文件CDN加速 ...
- CodeIgniter - 集成七牛云存储
最近有一个项目需要集成七牛云存储的图片存储和调用功能,程序是基于CodeIgniter2.1.3的PHP框架.刚拿到手完全无从下手的感觉,因为像框架这种东西,想从官方的PHPSDK集成进去,需要改动很 ...
- PHP使用七牛云存储之图片的上传、下载、303重定向教程,CI框架实例
网上关于七牛云存储的教程除了官网上的API文档,其他的资料太少了.研究了下API之后,现在已经能实现图片的上传和下载及上传之后的重定向. http://blog.csdn.net/cqcre/arti ...
- ueditor上传图片到七牛云存储(form api,java)
转:http://my.oschina.net/duoduo3369/blog/174655 ueditor上传图片到七牛云存储 ueditor结合七牛传图片 七牛的试炼 开发前的准备与注意事项说明 ...
- 七牛云存储Python SDK使用教程 - 上传策略详解
文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k ...
- 【UEditor】远程上传图片到【七牛云存储】
杂谈:最近在玩一个第三方的微信开发平台,里面的图片都是上传到[七牛云存储]的,用了一下非常的好用,支持各种语言,SDK齐全.支持全分布式系统架构以及存储技术和数据加速,于是决定将网站的图片都存储到七牛 ...
随机推荐
- maven项目使用jacoco插件检测代码覆盖率详细配置
使用maven构建项目(java项目或者web项目都可以) jacoco插件的配置参考官方网址:http://www.eclemma.org/jacoco/trunk/doc/maven.html ( ...
- File类实现文件夹和文件复制
package com.jcy.copy; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFou ...
- js swipeDelete 滑动删除
先上图看看整体实际效果 看看用法 与参数 默认参数 var defaults = { distance:80, //滑动距离 units:'px', //默认单位 touchStart:functio ...
- Linux指令--telnet
telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户 ...
- MySQL备份利器-xtrabackup的介绍和原理(附脑图)
标签(linux): mysql-xtrabackup 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 xtrabackup是Percona公司针对mysql数据 ...
- _beginthread和CreatThread的区别
转自:http://www.jb51.net/article/41459.htm 我们知道在Windows下创建一个线程的方法有两种,一种就是调用Windows API CreateThread()来 ...
- 缓存之ehcache
1.EhCache缓存框架简介 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. 我们使用EhCache缓存框架主要是为 ...
- 编译安装 apache 2.4.6
如果配置apr,需要预先安装apr 以下是安装apache 步骤: groupadd webuser useradd -g webuser webuser 下载apache2 下载链接:http:// ...
- iOS-RATreeView多层UITableViewCell展示【多级列表展开与收起】的使用
1.前言 iOS开发时,经常接触到的列表展示就是Tableview再熟悉不过了,但是如果接触到多层多级cell的展示,用大牛Augustyniak写的RATreeView是最好不过的了,Git地址:h ...
- 对把JDK源码的一些注解,笔记
//对treeMap的红黑树理解注解. 2017.02.16 by 何锦彬 JDK,1.7.51 /** From CLR */ private void fixAfterInsertion(Entr ...