tencent cloud

文档反馈

单链接限速

最后更新时间:2022-03-04 11:11:49

    简介

    本文档提供关于单链接限速相关的介绍和 SDK 示例代码。

    说明:

    限速值设置范围为819200 - 838860800,单位默认为 bit/s,即100KB/s - 100MB/s,如果超出该范围将返回400错误。

    设置上传限速

    // 使用高级接口必须先保证本进程存在一个 TransferManager 实例,如果没有则创建
    // 详细代码参见本页:高级接口 -> 创建 TransferManager
    TransferManager transferManager = createTransferManager();
    // 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式
    String bucketName = "examplebucket-1250000000";
    // 对象键(Key)是对象在存储桶中的唯一标识。详情请参见 [对象键](https://www.tencentcloud.com/document/product/436/13324)
    String key = "exampleobject";
    // 这里创建一个 ByteArrayInputStream 来作为示例,实际中这里应该是您要上传的 InputStream 类型的流
    long inputStreamLength = 1024 * 1024;
    byte data[] = new byte[inputStreamLength];
    InputStream inputStream = new ByteArrayInputStream(data);
    // 限速使用的单位是 bit/s, 这里设置上传限制为 10MB/s
    putObjectRequest.setTrafficLimit(80*1024*1024);
    try {
      // 高级接口会返回一个异步结果Upload
      // 可同步地调用 waitForUploadResult 方法等待上传完成,成功返回UploadResult, 失败抛出异常
      Upload upload = transferManager.upload(putObjectRequest);
      UploadResult uploadResult = upload.waitForUploadResult();
    } catch (CosServiceException e) {
      e.printStackTrace();
    } catch (CosClientException e) {
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
    // 确定本进程不再使用 transferManager 实例之后,关闭之
    // 详细代码参见本页:高级接口 -> 关闭 TransferManager
    shutdownTransferManager(transferManager);
    

    设置下载限速

    // 使用高级接口必须先保证本进程存在一个 TransferManager 实例,如果没有则创建
    // 详细代码参见本页:高级接口 -> 创建 TransferManager
    TransferManager transferManager = createTransferManager();
    // 存储桶的命名格式为 BucketName-APPID,此处填写的存储桶名称必须为此格式
    String bucketName = "examplebucket-1250000000";
    // 对象键(Key)是对象在存储桶中的唯一标识。详情请参见 [对象键](https://www.tencentcloud.com/document/product/436/13324)
    String key = "exampleobject";
    // 本地文件路径
    String localFilePath = "/path/to/localFile";
    File downloadFile = new File(localFilePath);
    GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
    // 限速使用的单位是 bit/s, 这里设置下载限制为 10MB/s
    getObjectRequest.setTrafficLimit(80*1024*1024);
    try {
      // 返回一个异步结果 Donload, 可同步的调用 waitForCompletion 等待下载结束, 成功返回 void, 失败抛出异常
      Download download = transferManager.download(getObjectRequest, downloadFile);
      download.waitForCompletion();
    } catch (CosServiceException e) {
      e.printStackTrace();
    } catch (CosClientException e) {
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
    // 确定本进程不再使用 transferManager 实例之后,关闭之
    // 详细代码参见本页:高级接口 -> 关闭 TransferManager
    shutdownTransferManager(transferManager);
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持