1.七牛云云存储图片,上传、下载。源代码地址:ssh (git@gitee.com:516877626/QiNiuYunUploadpicture.git) 、https(https://gitee.com/516877626/QiNiuYunUploadpicture.git)

七牛云sdk地址:https://developer.qiniu.com/kodo/sdk/1237/csharp

nuget中安装七牛云sdk, Install-Package Qiniu

 /// <summary>
/// 文件分片上传(断点续传)
/// </summary>
/// <param name="args"></param>
static void Main1(string[] args)
{
Mac mac = new Mac("6cFdejkPY4zWPHMlPMdKNE7SIaLX_Q9sMoAG1ahy", "BG5JU-fLMLE1DJtcgD5-hC8Dy4WNhoDjc5cWYi21");//(AccessKey, SecretKey);
// 上传文件名
string key = "";
// 本地文件路径
string filePath = "D:\\2.png";
// 存储空间名
string Bucket = "zszhousepicturebucket";
// 设置上传策略,详见:https://developer.qiniu.com/kodo/manual/1206/put-policy
PutPolicy putPolicy = new PutPolicy();
putPolicy.Scope = Bucket + ":" + key;
putPolicy.SetExpires();
string token = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());
Config config = new Config();
// 设置上传区域
config.Zone = Zone.ZONE_CN_South;
// 设置 http 或者 https 上传
config.UseHttps = true;
config.UseCdnDomains = true;
config.ChunkSize = ChunkUnit.U512K;
ResumableUploader target = new ResumableUploader(config);
PutExtra extra = new PutExtra();
//设置断点续传进度记录文件
extra.ResumeRecordFile = ResumeHelper.GetDefaultRecordKey(filePath, key);
Console.WriteLine("record file:" + extra.ResumeRecordFile);
extra.ResumeRecordFile = "test.progress";
HttpResult result = target.UploadFile(filePath, key, token, extra);
Console.WriteLine("resume upload: " + result.ToString());
}
/// <summary>
/// Form 表单上传
/// </summary>
/// <param name="args"></param>
static void Main2(string[] args)
{ Mac mac = new Mac("6cFdejkPY4zWPHMlPMdKNE7SIaLX_Q9sMoAG1ahy", "BG5JU-fLMLE1DJtcgD5-hC8Dy4WNhoDjc5cWYi21");//(AccessKey, SecretKey);
// 上传文件名
string key = "";
// 本地文件路径
string filePath = "D:\\2.png";
// 存储空间名
string Bucket = "zszhousepicturebucket";
// 设置上传策略,详见:https://developer.qiniu.com/kodo/manual/1206/put-policy
PutPolicy putPolicy = new PutPolicy();
putPolicy.Scope = Bucket;
putPolicy.SetExpires();//自定义凭证有效期(示例2小时,expires单位为秒,为上传凭证的有效时间)
putPolicy.DeleteAfterDays = ;
string token = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());
Config config = new Config
{
// 设置上传区域
Zone = Zone.ZONE_CN_South,
// 设置 http 或者 https 上传
UseHttps = true,
UseCdnDomains = true,
ChunkSize = ChunkUnit.U512K
};
// 表单上传
FormUploader target = new FormUploader(config);
HttpResult result = target.UploadFile(filePath, key, token, null);
Console.WriteLine("form upload result: " + result.ToString());
Console.Read();
}
/// <summary>
/// Form 表单上传 自定义返回体
/// </summary>
/// <param name="args"></param>
static void Main5(string[] args)
{ Mac mac = new Mac("6cFdejkPY4zWPHMlPMdKNE7SIaLX_Q9sMoAG1ahy", "BG5JU-fLMLE1DJtcgD5-hC8Dy4WNhoDjc5cWYi21");//(AccessKey, SecretKey);
// 上传文件名
string key = "";
// 本地文件路径
string filePath = "D:\\2.png";
// 存储空间名
string Bucket = "zszhousepicturebucket";
// 设置上传策略,详见:https://developer.qiniu.com/kodo/manual/1206/put-policy
PutPolicy putPolicy = new PutPolicy();
putPolicy.SetExpires();//自定义凭证有效期(示例2小时,expires单位为秒,为上传凭证的有效时间)
putPolicy.Scope = Bucket;
// putPolicy.CallbackUrl = "http://api.example.com/qiniu/upload/callback";
putPolicy.CallbackBody = "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"fsiz\":$(fsize),\"bucket\":\"$(bucket)\",\"name\":\"$(x:name)\"}";
putPolicy.CallbackBodyType = "application/json";
var upToken = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());
Console.WriteLine(upToken); //则文件上传到七牛之后,收到的回复内容如下:{"key":"qiniu.jpg","hash":"Ftgm-CkWePC9fzMBTRNmPMhGBcSV","bucket":"if-bc","fsize":39335,"name":"qiniu"} Config config = new Config
{
// 设置上传区域
Zone = Zone.ZONE_CN_South,
// 设置 http 或者 https 上传
UseHttps = true,
UseCdnDomains = true,
ChunkSize = ChunkUnit.U512K
};
// 表单上传
FormUploader target = new FormUploader(config);
HttpResult result = target.UploadFile(filePath, key, upToken, null);
Console.WriteLine("form upload result: " + result.ToString());
Console.Read();
}
/// <summary>
/// 下载
/// </summary>
/// <param name="args"></param>
static void Main6(string[] args)
{
string domain = "http://p18x1qwno.bkt.clouddn.com";
string key = "";
string publicUrl = DownloadManager.CreatePublishUrl(domain, key);
Qiniu.Http.HttpResult res = DownloadManager.Download(publicUrl, "D:\\TestPic\\2.png");
Console.WriteLine(publicUrl);
Console.WriteLine("oko");
} /// <summary>
/// 批量删除图片
/// </summary>
static void Main(string[] args) { // 设置存储区域
Config config = new Config
{
Zone = Zone.ZONE_CN_South
};
Mac mac = new Mac("6cFdejkPY4zWPHMlPMdKNE7SIaLX_Q9sMoAG1ahy", "BG5JU-fLMLE1DJtcgD5-hC8Dy4WNhoDjc5cWYi21");//(AccessKey, SecretKey);
BucketManager bucketManager = new BucketManager(mac, config); //单个的删除
// 空间名
string Bucket = "zszhousepicturebucket";
// 文件名
string Key = "";//不用加后缀 HttpResult deleteRet = bucketManager.Delete(Bucket, Key);
Console.WriteLine("delete error: " + deleteRet.ToString()); if (deleteRet.Code != (int)HttpCode.OK)
{
Console.WriteLine("delete error: " + deleteRet.ToString());
} //批量的删除
////每个operations的数量不可以超过1000个,如果总数量超过1000,需要分批发送
//// 设置空间
//string Bucket = "zszhousepicturebucket";
//string[] keys = { "2" };//不用加后缀 //List<string> ops = new List<string>();
//foreach (string key in keys)
//{
// string op = bucketManager.DeleteOp(Bucket, key);
// ops.Add(op);
//} //BatchResult ret = bucketManager.Batch(ops);
//if (ret.Code / 100 != 2)
//{
// Console.WriteLine("batch error: " + ret.ToString());
//}
//foreach (BatchInfo info in ret.Result)
//{
// if (info.Code == (int)HttpCode.OK)
// {
// Console.WriteLine("delete success");
// }
// else
// {
// Console.WriteLine(info.Data.Error);
// }
//}
Console.Read(); }

asp.net mvc中使用:

  public ActionResult Index()
{
Mac mac = new Mac("6cFdejkPY4zWPHMlPMdKNE7SIaLX_Q9sMoAG1ahy", "BG5JU-fLMLE1DJtcgD5-hC8Dy4WNhoDjc5cWYi21");//(AccessKey, SecretKey);
// 上传文件名
string key = "";
// 本地文件路径
string filePath = "D:\\2.png";
// 存储空间名
string Bucket = "zszhousepicturebucket";
// 设置上传策略,详见:https://developer.qiniu.com/kodo/manual/1206/put-policy
PutPolicy putPolicy = new PutPolicy();
putPolicy.SetExpires();//自定义凭证有效期(示例2小时,expires单位为秒,为上传凭证的有效时间)
putPolicy.Scope = Bucket;
putPolicy.CallbackUrl = "";
putPolicy.CallbackBody = "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"fsiz\":$(fsize),\"bucket\":\"$(bucket)\",\"name\":\"$(x:name)\"}";
putPolicy.CallbackBodyType = "application/json";
var upToken = Auth.CreateUploadToken(mac, putPolicy.ToJsonString());
//则文件上传到七牛之后,收到的回复内容如下:{"key":"qiniu.jpg","hash":"Ftgm-CkWePC9fzMBTRNmPMhGBcSV","bucket":"if-bc","fsize":39335,"name":"qiniu"}
Config config = new Config
{
// 设置上传区域
Zone = Zone.ZONE_CN_South,
// 设置 http 或者 https 上传
UseHttps = true,
UseCdnDomains = true,
ChunkSize = ChunkUnit.U512K
};
// 表单上传
FormUploader target = new FormUploader(config);
Qiniu.Http.HttpResult result = target.UploadFile(filePath, key, upToken, null);
Console.WriteLine(result.ToString());
return Content("form upload result: " + result.ToString());
}

7NiuYun云存储UploadPicture的更多相关文章

  1. openstack-swift云存储部署(二)

    接上篇,swift-proxy和swift-store的安装 先说一下服务器分配 swift-proxy和keystone部署在192.168.25.11 swift-store是两台  分别是192 ...

  2. openstack-swift云存储部署(一)

    最近因为工作的需要搭建了一套swift云存储架构 我们先来解读一下里面的技术知识点:swift服务是属于openstack中的一种组件服务,openstack中的组件服务还有keystone.Nova ...

  3. phpcmsv9 阿里云OSS云存储整合教程

    该教程算不上是phpcmsv9阿里云oss插件,所以整个修改及其代码覆盖前请一定记得备份.还有一点就是后台发布文章时上传的附件还是会保存在你的服务器上,基于以下原因:1.个人的需求是前台页面需要使用t ...

  4. Microsoft Azure 云存储服务概念

    本文包括了以下几点内容: 什么是Azure云存储服务? 云存储服务分类 云存储服务的优势 什么是Azure云存储服务? Azure 云存储服务可以说是Azure 上最重要的SAAS服务了. 在Azur ...

  5. 自己搭建云存储(WIFI路由器上接硬盘)

    欢迎转载opendevkit文章, 文章原始地址: http://www.opendevkit.com/?e=49 http://www.cnet.com/how-to/share-an-extern ...

  6. java servlet手机app访问接口(三)高德地图云存储及检索

    这篇关于高德地图的随笔内容会多一点, 一.业务说明     对应APP业务中的成员有两类,一是服务人员,二是被服务人员,  主要实现功能, 对APP中的服务人员位置进行时时定位, 然后通过被服务人员登 ...

  7. ios每日一发--Leanclude数据云存储以及登录 注册账户

    利用LeanCloud来实现注册账号,存储账号以及,登录时查询账号是否正确.集成方式很简单可以看这里的官方文档.地址是这里: https://leancloud.cn/docs/ 在这里创建应用,以及 ...

  8. 云存储性能测试工具--COSBench安装

    COSBench安装 Cosbench是Intel的开源云存储性能测试软件,COSBench目前已经广泛使用与云存储测试,并作为云存储的基准测试工具使用 1 环境 1.1 操作系统 COSBench可 ...

  9. 自动备份SQL数据库到云存储Storage

    如何自动备份SQL数据库到Storage呢. 前提条件需要SQL Server2012 SP1 CU2或更高版本 1. 备份SQL Azure数据库到云存储Storage 1)在SQL Server ...

随机推荐

  1. UVA 1482 SG打表

    打出SG表来可以很容易的发现i为偶数时 SG[i]=i/2 i为奇数时 SG[i]=SG[i/2] #include<bits/stdc++.h> typedef long long ll ...

  2. Vue学习日记(四)——Vue状态管理vuex

    前言 先说句前话,如果不是接触大型项目,不需要有多个子页面,不使用vuex也是完全可以的. 说实在话,我在阅读vuex文档的时候,也很难以去理解vuex,甚至觉得没有使用它我也可以.但是直到我在项目碰 ...

  3. 08-sp_who2和inputbuffer的使用,连接数

    一.sp_who2的使用 1.存储过程的位置 sp_who官方解释地址:https://docs.microsoft.com/zh-cn/sql/relational-databases/system ...

  4. 【Winfrom-Panel】Panel隐藏与显示,自动隐藏菜单, Auto-Hide Menu

    设计界面:2个button,一个panel 当鼠标移动到btnHome时,显示menuPanel 当鼠标离开btnHome时,隐藏menuPanel 当btnPin箭头向左时,menuPanel为自动 ...

  5. 交换机配置——Cisco(思科)-交换机初始化配置

    一.实验目的:完成一台交换机的初始化配置,并且可以用telnet登录 二.拓扑图如下: 三.实验步骤 1.创建一台交换机(S1)和一台主机(PC1) 2.先给PC1主机设置IP地址: 3.S1配置: ...

  6. BZOJ 4034 [HAOI2015]树上操作 线段树+树剖或dfs

    题意 直接照搬原题面 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中所 ...

  7. 【集训队作业2018】小Z的礼物

    小水题.题意就是不断随机放一个 \(1 \times 2\) 骨牌,然后取走里面的东西.求期望多少次取走所有的东西.然后有一维很小. 首先显然 minmax 容斥,将最后取走转化为钦定一些物品,求第一 ...

  8. Vue_(组件通讯)动态组件结合keep-alive

    keep-alive 传送门 <keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们.和 <transition> 相似,<keep-alive ...

  9. Centos系统下载

    在学习或者工作当中,难免会用到不同版本的CentOS镜像,下面就简单的介绍一下如何正确并快速的下载所需要的CentOS镜像. 一.官网下载 官网地址:https://www.centos.org/此种 ...

  10. Java项目框架搭建系列(Java学习路线)

    前言: 已经工作4年,真是时间飞逝. 其实当你在一间公司工作一两年之后,公司用到的开发框架的基本使用你应该都会了. 你会根据一个现有项目A复制一下搭建出另外一个类似框架的项目B,然后在项目B上进行业务 ...