BosClient

新建BosClient

BosClient是BOS服务的客户端,为开发者与BOS服务进行交互提供了一系列的方法。在使用SDK发起对BOS的请求前,您需要初始化一个BosClient实例,并对它进行一些必要设置。

  • 基本流程

    1. 确定EndPoint。EndPoint是指BOS服务在各个区域的域名地址,默认域名为北京bj.bcebos.com
    2. 创建一个BceClientConfiguration实例。
    3. 使用您的AK/SK创建DefaultBceCredentials并赋值给BceClientConfiguration的Credentials属性。
    4. 用配置好的BceClientConfiguration创建BosClient实例。
  • 示例代码

    class BosClientSample
    {
        static void Main(string[] args)
        {
            const string accessKeyId = <AccessKeyID>; // 您的Access Key ID
            const string secretAccessKey = <SecretAccessKey>; // 您的Secret Access Key
            const string endpoint = <EndPoint>;          //传入Bucket所在区域域名
    
            // 初始化一个BosClient
            BceClientConfiguration config = new BceClientConfiguration();
            config.Credentials = new DefaultBceCredentials(accessKeyId, secretAccessKey);
            config.Endpoint = endpoint;        
            BosClient client = new BosClient(config);
        }
    }
    

    说明:在上面代码中,变量<AccessKeyID><SecretAccessKey>是由系统分配给用户的,均为字符串,用于标识用户,为访问BOS做签名验证。其中<AccessKeyID>对应控制台中的“Access Key ID”,<SecretAccessKey>对应控制台中的“Access Key Secret”,获取方式请参考获取AK/SK

    EndPoint参数只能用指定的包含区域的域名来进行定义,不指定时默认为北京区域http://bj.bcebos.com。百度智能云目前开放了多区域支持,请参考区域选择说明

    目前支持“华北-北京”、“华南-广州”和“华东-苏州”三个区域。北京区域:http://bj.bcebos.com,广州区域:http://gz.bcebos.com,苏州区域:http://su.bcebos.com

配置HTTPS协议访问BOS

BOS支持HTTPS传输协议,您可以将EndPoint直接设置为https即可,不设置EndPoint时,默认为http协议。

  • 示例代码

    class BosClientSample
    {
        static void Main(string[] args)
        {
            const string accessKeyId = <AccessKeyID>; // 您的Access Key ID
            const string secretAccessKey = <SecretAccessKey>; // 您的Secret Access Key
            const string endpoint = https://bj.bcebos.com ;          //传入Bucket所在区域域名,并直接设置为https协议
    
            // 初始化一个BosClient
            BceClientConfiguration config = new BceClientConfiguration();
            config.Credentials = new DefaultBceCredentials(accessKeyId, secretAccessKey);
            config.Endpoint = endpoint;        
            BosClient client = new BosClient(config);
        }
    }
    

配置BosClient

  • 基本流程

    1. 创建一个BceClientConfiguration实例。
    2. 使用您的AK/SK创建DefaultBceCredentials并赋值给BceClientConfiguration的Credentials属性。
    3. 对BceClientConfiguratio实例的各种属性进行赋值。
    4. 用配置好的BceClientConfiguration创建BosClient实例。

如果用户需要配置BosClient的一些细节的参数,可以在构造BosClient的时候传入BosClientConfiguration对象。 BosClientConfiguration是BOS服务的配置类,可以为客户端配置超时时间,最大连接数等参数。

设置网络参数

  • 示例代码

    BceClientConfiguration config = new BceClientConfiguration();
    
    // 设置HTTP最大连接数为10
    config.ConnectionLimit = 10;
    
    // 设置TCP连接超时为5000毫秒
    config.TimeoutInMillis = 5000;
    
    // 设置读写数据超时的时间为50000毫秒
    config.ReadWriteTimeoutInMillis = 50000;
    
  • 参数说明

    通过BceClientConfiguration能指定的所有参数如下表所示:

参数 说明
UserAgent 用户代理,指HTTP的User-Agent头
Protocol 连接协议类型,缺省值为HTTP协议
TimeoutInMillis 建立连接的超时时间(单位:毫秒),缺省值为30000
ReadWriteTimeoutInMillis 通过打开的连接传输数据的超时时间(单位:毫秒),缺省值为30000
ConnectionLimit 允许打开的最大HTTP连接数,缺省值为5
RetryPolicy 连接重试策略
SocketBufferSizeInBytes Socket缓冲区大小
  • 完整示例

    下面示例代码演示了BosClient的创建和配置。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using BaiduBce;
    using BaiduBce.Auth;
    using BaiduBce.Services.Bos;
    
    namespace DotnetSample
    {
    internal class BosClientSample
      {
          private static void Main(string[] args)
          {
              const string accessKeyId = <AccessKeyID>; // 您的Access Key ID
              const string secretAccessKey = <SecretAccessKey>; // 您的Secret Access Key
              const string endpoint = <EndPoint>;
    
              // 初始化一个BosClient
              BceClientConfiguration config = new BceClientConfiguration();
              config.Credentials = new DefaultBceCredentials(accessKeyId, secretAccessKey);
              config.Endpoint = endpoint;
    
              // 设置HTTP最大连接数为10
              config.ConnectionLimit = 10;
    
              // 设置TCP连接超时为5000毫秒
              config.TimeoutInMillis = 5000;
    
              // 设置读写数据超时的时间为50000毫秒
              config.ReadWriteTimeoutInMillis = 50000;
    
              BosClient client = new BosClient(config);
          }
      }
    }