单链接限速

最近更新时间:2024-08-14 14:20:21

我的收藏

简介

本文介绍对象存储 COS 通过 .NET(C#) SDK 实现调用上传下载接口时对链接进行限速功能的示例代码和描述。

注意事项

限速值设置范围为819200 - 838860800,单位默认为 bit/s,即800Kb/s - 800Mb/s,如果超出该范围将返回400错误。
说明:
关于单链接限速的更多说明,请参见 单链接限速 开发者指南。

相关示例

功能名称
描述
示例代码
上传、下载时对单链接限速
上传、下载时对单链接限速

前期准备:初始化 COS 服务实例

public class UploadObject { private CosXml cosXml; //将服务用户设置成数据成员 // 初始化COS服务实例 private void InitCosXml() { string region = Environment.GetEnvironmentVariable("COS_REGION"); CosXmlConfig config = new CosXmlConfig.Builder() .SetRegion(region) // 设置默认的地域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224 .Build(); string secretId = Environment.GetEnvironmentVariable("SECRET_ID"); // 云 API 密钥 SecretId, 获取 API 密钥请参照 https://console.cloud.tencent.com/cam/capi string secretKey = Environment.GetEnvironmentVariable("SECRET_KEY"); // 云 API 密钥 SecretKey, 获取 API 密钥请参照 https://console.cloud.tencent.com/cam/capi long durationSecond = 600; //每次请求签名有效时长,单位为秒 QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider(secretId, secretKey, durationSecond); this.cosXml = new CosXmlServer(config, qCloudCredentialProvider); } }

使用案例

上传时对单链接限速

public async Task UploadObjectTrafficLimit() { TransferConfig transferConfig = new TransferConfig(); // 初始化 TransferManager TransferManager transferManager = new TransferManager(cosXml, transferConfig); // 存储桶名称,此处填入格式必须为 bucketname-APPID, 其中 APPID 获取参考 https://console.cloud.tencent.com/developer string bucket = "examplebucket-1250000000"; string cosPath = "dir/exampleObject"; // 对象键 string srcPath = @"temp-source-file";//本地文件绝对路径 PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, cosPath, srcPath); putObjectRequest.LimitTraffic(8 * 1000 * 1000); // 限制为1MB/s COSXMLUploadTask uploadTask = new COSXMLUploadTask(putObjectRequest); uploadTask.SetSrcPath(srcPath); await transferManager.UploadAsync(uploadTask); }

下载时对单链接限速

public async Task DownloadObjectTrafficLimit() { TransferConfig transferConfig = new TransferConfig(); // 初始化 TransferManager TransferManager transferManager = new TransferManager(cosXml, transferConfig); String bucket = "examplebucket-1250000000"; //存储桶,格式:BucketName-APPID String cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即称对象键 string localDir = System.IO.Path.GetTempPath();//本地文件夹 string localFileName = "my-local-temp-file"; //指定本地保存的文件名 GetObjectRequest request = new GetObjectRequest(bucket, cosPath, localDir, localFileName); request.LimitTraffic(8 * 1000 * 1024); // 限制为1MB/s COSXMLDownloadTask downloadTask = new COSXMLDownloadTask(request); await transferManager.DownloadAsync(downloadTask); }