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齐全.支持全分布式系统架构以及存储技术和数据加速,于是决定将网站的图片都存储到七牛 ...
随机推荐
- Thrift compiler代码生成类解析
代码生成类解析: Thrift--facebook RPC框架,介绍就不说了,百度,google一大把,使用也不介绍,直接上结构和分析吧. Hello.thrift文件内容如下: namespace ...
- eclipse代码编辑区字符串自动转义设置
在做接口测试时,有时接口请求参数非常多,如果用java相关方法去拼接参数,难度较大,并且非常浪费时间,那如何快速将整个请求参数拼接成一个字符串呢?为了解决这个问题,只要简单配置下eclipse设置即可 ...
- 5dfda1332b67817b0f2d7839242021ce'Java数据结构和算法
1.return 一个空的集合,而不是 null 如果一个程序返回一个没有任何值的集合,请确保一个空集合返回,而不是空元素.这样你就不用去写一大堆 "if else" 判断null ...
- Linux - ubuntu 16 打开SSH服务
ubuntu 16 打开SSH服务 1.查看是否启动进程 roott@jiqing-virtual-machine:~# ps -ef | grep sshd root 3477 1 0 18:36 ...
- HBuilder连接IOS手机打开APP测试
HBuilder是专为前端打造的开发工具,具有最全的语法库和浏览器兼容数据,以方便制作手机APP,最保护眼睛的绿柔设计等优点在近几年盛行: 开发移动端APP项目想要在手机真机上测试: 首先打开HBui ...
- CColor类封装
CColor类封装 Color.h #pragma once #include <sstream> #include <string> using namespace std; ...
- Java序列化小结
title: Java序列化小结 date: 2017-05-06 20:07:59 tags: 序列化 categories: Java基础 --- Java序列化就是将一个对象转化成一串二进制表示 ...
- Log4j扩展使用--日志格式化器Layout
Layout:格式化输出日志信息 OK,前面我已经知道了.Appender必须使用一个与之相关联的Layout,这样才能知道怎样格式化输出日志信息. 日志格式化器Layout负责格式化日志信息,方法l ...
- Linux指令--kill
Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须 ...
- Git初入
Git记录 使用git 也有一段时间了, git的入门级了解也就不再多说, 但平常使用中, 仍然会遇到很多问题, 在此记录一二. 在查资料的过程中, 发现了两个比较好的资料: 特别是第二个, 相当详细 ...