腾讯云cos封装
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封装的更多相关文章
- 微信小程序/网站 上传图片到腾讯云COS
COS简介: 腾讯云提供的一种对象存储服务,供开发者存储海量文件的分布式存储服务.可以将自己开发的应用的存储部分全部接入COS的存储桶中,有效减少应用服务器的带宽,请求等.个人也可以通过腾讯云账号免费 ...
- 腾讯云COS体验
其实这篇文章本来是推荐COS的,写了一半发现COS的免费额度取消了,2019年之后的开通的用户免费6个月,老用户不受影响,这还让我怎么推荐啊?!写都写了,删掉岂不是白浪费时间? 都怪你!腾讯云! 起因 ...
- 利用腾讯云COS云对象存储定时远程备份网站
版权声明:本文由张戈 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/942851001487125915 来源:腾云阁 h ...
- Nginx反向代理腾讯云COS的一个坑
版权声明:本文由黄希彤 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/668639001484812620 来源:腾云 ...
- 直压到亚马逊AWS平台,阿里云OSS平台或者腾讯云COS平台
GTX Compressor (直压上云技术预览版) Powered by GTXLab of Genetalks. 技术预览版本下载地址: https://github.com/Genetalks/ ...
- 搭建markdown图床-腾讯云COS
背景介绍 书写markdown笔记时,如何处理图片,实在是有些棘手的问题.每一张图都保存在当前文件夹? 每张图都自己重命名?每次上传到cnblogs博客都需要一张一张拖动?markdown已经非常成功 ...
- PHP 腾讯云cos使用之我见
因为某些人的原因,本文从新改名发布一遍. 原名称:tp5 -- 腾讯云cos简单使用 原文链接:https://www.cnblogs.com/YFYQ/p/10840050.html 因项目需要,本 ...
- tp5 -- 腾讯云cos简单使用
因项目需要,本来是需要对接阿里云oss,但因客户错误将云存储买成腾讯云cos,因此简单做了个对象上传使用 首先下载cos的sdk: 三种方式在文档上面都有介绍 SDK 安装有三种方式:Composer ...
- 腾讯云COS对象存储的简单使用
叮当哥之前买了一年的腾讯云服务器,昨日偶然发现腾讯云送了叮当哥半年的cos对象存储服务器,于是就撸起袖子传了几张珍藏的高清大图上去,现将其上传的简单使用步骤总结一波(其它操作参加官方SDK文档API) ...
随机推荐
- NOI2018d1t1 归程 (dijkstra+kruskal重构树)
题意:给一张无向联通图,每条边有长度和高度,每次询问在高度大于p的边,从v点能到达的所有点到1号点的最短距离(强制在线) 首先dijkstra求出每个点到1号点的距离 易知:如果我按高度从高到低给边排 ...
- [NOI2018]你的名字(后缀自动机+线段树)
题目描述 小A 被选为了ION2018 的出题人,他精心准备了一道质量十分高的题目,且已经把除了题目命名以外的工作都做好了. 由于ION 已经举办了很多届,所以在题目命名上也是有规定的,ION 命题手 ...
- Python学习day4 数据类型Ⅱ(列表,元祖)
day4 知识补充&数据类型:列表,元祖 1.知识补充 1.编译型/解释型 编译型:在代码编写完成之后编译器将其变成另外一个文件教给你算计执行. 代表语言:Java,c,c++ ,c#, Go ...
- 关于angular1与angular2的应用区别
angular1.0的这些繁杂的api,还有它的执行速度,运行效率,学习曲线,都被人吐槽,最近一直在用ng1,实在很想吐槽. 最近写ng2的项目,写了一些ng2基础的应用(包括angular-cli, ...
- wildfly tomcat 服务器不响应 不返回 死住了 查看tcp CLOSE_WAIT 暴多
I'm also having the same issue with a very latest Tomcat server (7.0.40). It goes non-responsive onc ...
- mysql json 使用 类型 查询 函数
一,对记录的操作 1.创建有json字段的表 -- 创建表 ) , info JSON); 2.插入记录 -- 插入含有json数组的记录 , , "abc", NULL, TRU ...
- bzoj4198 荷马史诗
关于Huffman树: 大概就是那样子吧. 是这样的:对于最多只能有k个叉的树,我们想要使得∑val(i) * deep(i)最大 那么我们补0后建立小根堆即可. 最典型例题:合并果子. 然后是这个: ...
- Linux/Unix系统QA
Q1:Ext3的三种日志记录方式 1 data=writeback 方式data=writeback方式下,ext3根本不执行任何形式的数据日志记录,提供给您的是和在XFS,JFS和 ReiserFS ...
- Luogu P2463 [SDOI2008]Sandy的卡片
题目链接 \(Click\) \(Here\) 真的好麻烦啊..事实证明,理解是理解,一定要认认真真把板子打牢,不然调锅的时候真的会很痛苦..(最好是八分钟能无脑把\(SA\)码对的程度\(QAQ\) ...
- linux c 编程 ------ 通过设备节点调用驱动
驱动程序如下,加载驱动后,会在/dev文件夹下生成一个文件hello_device_node,是此驱动的设备节点 #include <linux/init.h> #include < ...