产品动态
产品公告
Nuget 的集成方式,您可以在工程的 csproj 文件里添加:<PackageReference Include="Tencent.QCloud.Cos.Sdk" Version="5.4.*" />
dotnet add package Tencent.QCloud.Cos.Sdk
using COSXML;using COSXML.Auth;using COSXML.Model.Object;using COSXML.Model.Bucket;using COSXML.CosException;
CosXmlConfig , QCloudCredentialProvider , CosXmlServer3个对象。其中:CosXmlConfig 提供配置 SDK 接口。QCloudCredentialProvider 提供设置密钥信息接口。CosXmlServer 提供各种 COS API 服务接口。//初始化 CosXmlConfigstring appid = "1250000000";//设置腾讯云账户的账户标识 APPIDstring region = "COS_REGION"; //设置一个默认的存储桶地域CosXmlConfig config = new CosXmlConfig.Builder().IsHttps(true) //设置默认 HTTPS 请求.SetRegion(region) //设置一个默认的存储桶地域.SetDebugLog(true) //显示日志.Build(); //创建 CosXmlConfig 对象
public class CustomQCloudCredentialProvider : DefaultSessionQCloudCredentialProvider{// 这里假设开始没有密钥,也可以用初始的临时密钥来初始化public CustomQCloudCredentialProvider(): base(null, null, 0L, null) {;}public override void Refresh(){//... 首先通过腾讯云请求临时密钥string tmpSecretId = "SECRET_ID"; //"临时密钥 SecretId", 临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048string tmpSecretKey = "SECRET_KEY"; //"临时密钥 SecretKey", 临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048string tmpToken = "COS_TOKEN"; //"临时密钥 token", 临时密钥生成和使用指引参见 https://www.tencentcloud.com/document/product/436/14048long tmpStartTime = 1546860702;//临时密钥有效开始时间,精确到秒long tmpExpiredTime = 1546862502;//临时密钥有效截止时间,精确到秒// 调用接口更新密钥SetQCloudCredential(tmpSecretId, tmpSecretKey,String.Format("{0};{1}", tmpStartTime, tmpExpiredTime), tmpToken);}}QCloudCredentialProvider cosCredentialProvider = new CustomQCloudCredentialProvider();
string tmpSecretId = "SECRET_ID"; //"临时密钥 SecretId";string tmpSecretKey = "SECRET_KEY"; //"临时密钥 SecretKey";string tmpToken = "COS_TOKEN"; //"临时密钥 token";long tmpExpireTime = 1546862502;//临时密钥有效截止时间,精确到秒QCloudCredentialProvider cosCredentialProvider = new DefaultSessionQCloudCredentialProvider(tmpSecretId, tmpSecretKey, tmpExpireTime, tmpToken);
string secretId = Environment.GetEnvironmentVariable("SECRET_ID"); //用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1string secretKey = Environment.GetEnvironmentVariable("SECRET_KEY"); //用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://www.tencentcloud.com/document/product/598/37140?from_cn_redirect=1long durationSecond = 600; //每次请求签名有效时长,单位为秒QCloudCredentialProvider cosCredentialProvider = new DefaultQCloudCredentialProvider(secretId, secretKey, durationSecond);
CosXmlConfig 与 QCloudCredentialProvider 初始化 CosXmlServer 服务类。服务类建议在程序中作为单例使用。CosXml cosXml = new CosXmlServer(config, cosCredentialProvider);
try{string bucket = "examplebucket-1250000000"; //格式:BucketName-APPIDPutBucketRequest request = new PutBucketRequest(bucket);//执行请求PutBucketResult result = cosXml.PutBucket(request);//请求成功Console.WriteLine(result.GetResultInfo());}catch (COSXML.CosException.CosClientException clientEx){//请求失败Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//请求失败Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
try{GetServiceRequest request = new GetServiceRequest();//执行请求GetServiceResult result = cosXml.GetService(request);//得到所有的 bucketsList<ListAllMyBuckets.Bucket> allBuckets = result.listAllMyBuckets.buckets;}catch (COSXML.CosException.CosClientException clientEx){//请求失败Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//请求失败Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
// 初始化 TransferConfigTransferConfig transferConfig = new TransferConfig();// 初始化 TransferManagerTransferManager transferManager = new TransferManager(cosXml, transferConfig);String bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPIDString cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即称对象键String srcPath = @"temp-source-file";//本地文件绝对路径// 上传对象COSXMLUploadTask uploadTask = new COSXMLUploadTask(bucket, cosPath);uploadTask.SetSrcPath(srcPath);uploadTask.progressCallback = delegate (long completed, long total){Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));};try {COSXML.Transfer.COSXMLUploadTask.UploadTaskResult result = awaittransferManager.UploadAsync(uploadTask);Console.WriteLine(result.GetResultInfo());string eTag = result.eTag;} catch (Exception e) {Console.WriteLine("CosException: " + e);}
try{string bucket = "examplebucket-1250000000"; //格式:BucketName-APPIDGetBucketRequest request = new GetBucketRequest(bucket);//执行请求GetBucketResult result = cosXml.GetBucket(request);//bucket的相关信息ListBucket info = result.listBucket;if (info.isTruncated) {// 数据被截断,记录下数据下标this.nextMarker = info.nextMarker;}}catch (COSXML.CosException.CosClientException clientEx){//请求失败Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//请求失败Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
// 初始化 TransferConfigTransferConfig transferConfig = new TransferConfig();// 初始化 TransferManagerTransferManager transferManager = new TransferManager(cosXml, transferConfig);String bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPIDString cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即称对象键string localDir = System.IO.Path.GetTempPath();//本地文件夹string localFileName = "my-local-temp-file"; //指定本地保存的文件名// 下载对象COSXMLDownloadTask downloadTask = new COSXMLDownloadTask(bucket, cosPath,localDir, localFileName);downloadTask.progressCallback = delegate (long completed, long total){Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));};try {COSXML.Transfer.COSXMLDownloadTask.DownloadTaskResult result = awaittransferManager.DownloadAsync(downloadTask);Console.WriteLine(result.GetResultInfo());string eTag = result.eTag;} catch (Exception e) {Console.WriteLine("CosException: " + e);}
try{string bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPIDstring key = "exampleobject"; //对象键DeleteObjectRequest request = new DeleteObjectRequest(bucket, key);//执行请求DeleteObjectResult result = cosXml.DeleteObject(request);//请求成功Console.WriteLine(result.GetResultInfo());}catch (COSXML.CosException.CosClientException clientEx){//请求失败Console.WriteLine("CosClientException: " + clientEx);}catch (COSXML.CosException.CosServerException serverEx){//请求失败Console.WriteLine("CosServerException: " + serverEx.GetInfo());}
文档反馈