public class CosUtil
{
int _appId = xxxxx;
string _secretId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
string _secretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
string _bucketName = "test";
public CosUtil()
{
string cosAppId = System.Configuration.ConfigurationSettings.AppSettings.Get("COS_APP_ID");
if (!string.IsNullOrEmpty(cosAppId) )
{
int.TryParse(cosAppId,out _appId) ;
}
string cosSecretId = System.Configuration.ConfigurationSettings.AppSettings.Get("COS_SECRET_ID");
if (!string.IsNullOrEmpty(cosSecretId) )
{
_secretId = cosSecretId;
}
string cosSecretKey = System.Configuration.ConfigurationSettings.AppSettings.Get("COS_SECRET_KEY");
if (!string.IsNullOrEmpty(cosSecretKey) )
{
_secretKey = cosSecretKey;
}
string cosBucketName = System.Configuration.ConfigurationSettings.AppSettings.Get("COS_BUCKET_NAME");
if (!string.IsNullOrEmpty(cosBucketName))
{
_bucketName = cosBucketName;
}
} public JObject UpLoadFile(string AppName, string filePath)
{
var result = ""; string aFirstName = filePath.Substring(filePath.LastIndexOf("\\") + 1, (filePath.LastIndexOf(".") - filePath.LastIndexOf("\\") - 1)); //文件名
string aLastName = filePath.Substring(filePath.LastIndexOf(".") + 1, (filePath.Length - filePath.LastIndexOf(".") - 1)); //扩展名
string newFileName = Guid.NewGuid().ToString();
string datePath = DateTime.Now.ToString("yyyy-MM-dd");
string localPath = filePath;
string remotePath = "/" + AppName + "/" + datePath +"/"+ newFileName +"."+aLastName;
string folder = "/" + AppName + "/"; //创建cos对象
var cos = new CosCloud(_appId, _secretId, _secretKey); cos.SetRegion("bj"); //cos.GetFileStat.GetFolderList("test","\\",)
//创建文件夹
result = cos.CreateFolder(_bucketName, folder);
Console.WriteLine("创建文件目录:" + result); //目录更新
var updateParasDic = new Dictionary<string, string>();
updateParasDic.Add(CosParameters.PARA_BIZ_ATTR, "new attribute");
result = cos.UpdateFolder(_bucketName, folder, updateParasDic);
Console.WriteLine("目录更新:" + result); //获取文件夹属性
result = cos.GetFolderStat(_bucketName, folder);
Console.WriteLine("查询文件夹属性:" + result); //上传文件(不论文件是否分片,均使用本接口)
Stopwatch sw = new Stopwatch();
sw.Start();
var uploadParasDic = new Dictionary<string, string>();
uploadParasDic.Add(CosParameters.PARA_BIZ_ATTR, "");
uploadParasDic.Add(CosParameters.PARA_INSERT_ONLY, "0"); result = cos.UploadFile(_bucketName, remotePath, localPath, uploadParasDic, true, 20);
sw.Stop();
Console.WriteLine("上传文件:" + result);
Console.WriteLine(sw.Elapsed.TotalMilliseconds); //设置可选参数
var optionParasDic = new Dictionary<string, string>();
optionParasDic.Add(CosParameters.PARA_BIZ_ATTR, "new attribute");
optionParasDic.Add(CosParameters.PARA_AUTHORITY, AUTHORITY.AUTHORITY_PRIVATEPUBLIC);
//optionParasDic.Add(CosParameters.PARA_CACHE_CONTROL, "no");
//optionParasDic.Add(CosParameters.PARA_CONTENT_TYPE, "application/text");
//optionParasDic.Add(CosParameters.PARA_CONTENT_DISPOSITION, "inline filename=\"QC-7677.pdf\"");
//optionParasDic.Add(CosParameters.PARA_CONTENT_LANGUAGE, "en");
//optionParasDic.Add("x-cos-meta-test", "test"); //更新文件
result = cos.UpdateFile(_bucketName, remotePath, optionParasDic);
//Console.WriteLine("更新文件属性" + result); //获取文件属性
result = cos.GetFileStat(_bucketName, remotePath);
//Console.WriteLine("获取文件属性:" + result); JObject jo = (JObject)JsonConvert.DeserializeObject(result); return jo;
}
}

需要

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

调用方法

JObject  v=new CosUtil().UpLoadFile("GH", @"C:\Users\Administrator\Desktop\新建文本文档.txt");
if (v["code"].ToString() == "")//上传成功
{
string sourceUrl = v["data"]["source_url"].ToString();
string accessUrl = v["data"]["access_url"].ToString();
string len = v["data"]["filelen"].ToString(); }
else//上传失败
{
string message = v["message"].ToString();
}

腾讯云cos封装的更多相关文章

  1. 微信小程序/网站 上传图片到腾讯云COS

    COS简介: 腾讯云提供的一种对象存储服务,供开发者存储海量文件的分布式存储服务.可以将自己开发的应用的存储部分全部接入COS的存储桶中,有效减少应用服务器的带宽,请求等.个人也可以通过腾讯云账号免费 ...

  2. 腾讯云COS体验

    其实这篇文章本来是推荐COS的,写了一半发现COS的免费额度取消了,2019年之后的开通的用户免费6个月,老用户不受影响,这还让我怎么推荐啊?!写都写了,删掉岂不是白浪费时间? 都怪你!腾讯云! 起因 ...

  3. 利用腾讯云COS云对象存储定时远程备份网站

    版权声明:本文由张戈 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/942851001487125915 来源:腾云阁 h ...

  4. Nginx反向代理腾讯云COS的一个坑

    版权声明:本文由黄希彤   原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/668639001484812620 来源:腾云 ...

  5. 直压到亚马逊AWS平台,阿里云OSS平台或者腾讯云COS平台

    GTX Compressor (直压上云技术预览版) Powered by GTXLab of Genetalks. 技术预览版本下载地址: https://github.com/Genetalks/ ...

  6. 搭建markdown图床-腾讯云COS

    背景介绍 书写markdown笔记时,如何处理图片,实在是有些棘手的问题.每一张图都保存在当前文件夹? 每张图都自己重命名?每次上传到cnblogs博客都需要一张一张拖动?markdown已经非常成功 ...

  7. PHP 腾讯云cos使用之我见

    因为某些人的原因,本文从新改名发布一遍. 原名称:tp5 -- 腾讯云cos简单使用 原文链接:https://www.cnblogs.com/YFYQ/p/10840050.html 因项目需要,本 ...

  8. tp5 -- 腾讯云cos简单使用

    因项目需要,本来是需要对接阿里云oss,但因客户错误将云存储买成腾讯云cos,因此简单做了个对象上传使用 首先下载cos的sdk: 三种方式在文档上面都有介绍 SDK 安装有三种方式:Composer ...

  9. 腾讯云COS对象存储的简单使用

    叮当哥之前买了一年的腾讯云服务器,昨日偶然发现腾讯云送了叮当哥半年的cos对象存储服务器,于是就撸起袖子传了几张珍藏的高清大图上去,现将其上传的简单使用步骤总结一波(其它操作参加官方SDK文档API) ...

随机推荐

  1. mac上安装ta-lib

    Now I am ready to start installing TA-Lib. Generally I followed the steps listed in here. 1. Install ...

  2. TypeError: __init__() got an unexpected keyword argument 't_command'

    python  .\manage.py migrate 报错如下 λ python .\manage.py migrateTraceback (most recent call last): File ...

  3. STL之set和map

    by attack666      set与map   map 内部实现是一棵红黑树 定义 key和value分别对应着两种类型 map<key, value> mp; 内部函数 直观的理 ...

  4. hdu 3790 最短路问题 (spfa练手)

    Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的.   Inp ...

  5. 浅析 @PathVariable 和 @RequestParam(转发,非原创)

    首先 上两个地址:地址①http://localhost:8989/SSSP/emps?pageNo=2地址②http://localhost:8989/SSSP/emp/7如果想获取地址①中的 pa ...

  6. Gnome添加Open with Code菜单

    解决方法 测试环境: Manjaro Linux Rolling at 2018-08-31 19:04:49 Microsoft Visual Stdio Code 1.26.1 Bulid: 20 ...

  7. [USACO18JAN]Sprinklers

    [USACO18JAN]Sprinklers 一个矩形要符合什么条件 右上角的右上有点,左下角的左下有点 所以每列的选择高度为一个区间,小于后缀最大值大于前缀最小值(不管是作为右上角还是左下角) 然后 ...

  8. Oracle的DQL

    基本查询: 链接语句: sqlplus scott/tiger@192.168.56.101:1521/orcl SQL> --清屏 SQL> host cls (host clear) ...

  9. Unity 后处理堆

    Unity安装后处理的过程:windows---PacageManager---Post Processing Post Processing后处理堆需要知道要修改那个相机渲染的内容,先定位到相机,再 ...

  10. java参数可变方法

    java中允许一个方法中存在多个参数 public class Parmvarexmple { //参数可变的方法 public int sum(int...n) { int tempSum=0; f ...