You need to enable JavaScript to run this app.
导航

初始化客户端(.NET SDK)

最近更新时间2024.02.04 18:31:06

首次发布时间2023.08.24 14:41:46

TosClient 提供了一系列接口用与 TOS 服务进行交互,以管理存储桶和对象等 TOS 服务上的资源。可通过 AccessKey/SecretKey、STS (Security Token Service)等方式初始化 TosClient。在初始化时,您可设置建立连接超时时间、最大空闲连接数量等可选参数。本文介绍如何初始化 TOS .NET SDK。

前提条件

配置长期访问凭证

初始化 SDK 前,您需要先配置长期访问凭证。本章节介绍不同操作系统下配置长期访问凭证的操作步骤。

  1. 打开终端并执行以下命令打开文件。
nano ~/.bash_profile
  1. 在文件末尾添加 AKSK 信息。
export TOS_ACCESS_KEY=AKTPYmI1Z****
export TOS_SECRET_KEY=T1dJM01UU****
  1. 保存文件并退出。
  2. 执行以下命令生效配置信息。
source ~/.bash_profile
  1. 执行以下命令验证配置信息。
echo $TOS_ACCESS_KEY
echo $TOS_SECRET_KEY

如果配置成功,则返回如下示例:

AKTPYmI1Z****
T1dJM01UU****

创建 TosClient

使用必选参数初始化

以下代码展示如何使用 TOS 域名等必选参数初始化 TosClient,包括 AK、SK、Endpoint 和 Region。

说明

  • Endpoint 为 TOS 对外服务的访问域名。TOS 支持的 Endpoint 信息,请参见访问域名 Endpoint
  • AKSK 信息可从环境变量获取,配置方式,请参见配置访问凭证
using TOS;

namespace ConsoleApp
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
            var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
            // endpoint 若没有指定HTTP协议(HTTP/HTTPS),默认使用 HTTPS
            var endpoint = "*** Provide your endpoint ***";
            var region = "*** Provide your region ***";

            // 创建TOSClient实例。
            var client = TosClientBuilder.Builder().SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region).Build();
        }
    }
}

使用可选参数初始化

TOS .NET SDK 提供了多个可选参数来自定义配置 TosClient。以下代码展示如何自定义配置 TosClient 的 建立连接超时时间和读写超时时间。

using TOS;

namespace ConsoleApp
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
            var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
            // endpoint 若没有指定HTTP协议(HTTP/HTTPS),默认使用 HTTPS
            var endpoint = "*** Provide your endpoint ***";
            var region = "*** Provide your region ***";

            // 创建TOSClient实例。
            // 可以通过 tos.SetXXX 的方式添加可选参数
            // 示例中通过 SetConnectionTimeout 设置建立连接超时时间(单位为毫秒)
            // 通过 SetSocketTimeout 设置一次读写连接超时时间(单位为毫秒)
            var client = TosClientBuilder.Builder().
                SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region).
                SetConnectionTimeout(30000).SetSocketTimeout(30000).
                Build();
        }
    }
}

常见配置场景

配置超时机制

在 SDK 中可以通过可选参数调整超时时间,可以通过下列函数对超时参数进行配置:

  • SetConnectionTimeout:设置连接超时,表示在建立连接阶段最长等待时间,单位毫秒,默认值为 10000,即 10 秒。
  • SetSocketTimeout:设置读写网络流的超时,表示一次 Read/Write 最长等待时间,单位毫秒,默认值为 30000,即 30 秒。

以下代码展示如何设置 SDK 的超时时间。

using TOS;

namespace ConsoleApp
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
            var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
            // endpoint 若没有指定HTTP协议(HTTP/HTTPS),默认使用 HTTPS
            var endpoint = "*** Provide your endpoint ***";
            var region = "*** Provide your region ***";

            // 创建TOSClient实例。
            // 可以通过 tos.SetXXX 的方式添加可选参数
            // 示例中通过 SetConnectionTimeout 设置建立连接超时时间(单位为毫秒)
            // 通过 SetSocketTimeout 设置一次读写连接超时时间(单位为毫秒)
            var client = TosClientBuilder.Builder().
                SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region).
                SetConnectionTimeout(10000).SetSocketTimeout(30000).
                Build();
        }
    }
}

配置连接池

TOS .NET SDK 支持连接池配置,您可以在初始化 TosClient 时,添加 MaxConnections 参数配置连接池最大连接数量。

说明

连接池大小默认配置为 1024。

以下代码展示如何设置 SDK 的连接池大小。

using TOS;

namespace ConsoleApp
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var ak = Environment.GetEnvironmentVariable("TOS_ACCESS_KEY");
            var sk = Environment.GetEnvironmentVariable("TOS_SECRET_KEY");
            // endpoint 若没有指定HTTP协议(HTTP/HTTPS),默认使用 HTTPS
            var endpoint = "*** Provide your endpoint ***";
            var region = "*** Provide your region ***";

            // 创建TOSClient实例。
            // 可以通过SetMaxConnections的方式设置连接池参数
            var client = TosClientBuilder.Builder().SetAk(ak).SetSk(sk).SetEndpoint(endpoint).SetRegion(region)
                .SetMaxConnections(1024).Build();
        }
    }
}

初始化参数列表

参数名

参数类型

是否必选

示例值

说明

AK

String

必选

AKTPYmI1ZGQwMDA0NjlhNGFkMzhjNzM0N2Q0OTQ3ZTV****

Access Key ID ,即密钥 ID。

SK

String

必选

T1dJM01UUXpOak0wTVdWak5E0poWldJNU1HWmxaV1V5TkdReVl6****

SecretAccess Key,即私有访问密钥。

Endpoint

String

可选,为空时由 Region 参数决定

tos-cn-beijing.volces.com

TOS 服务端访问域名。

Region

String

可选,Endpoint 为空时必选

cn-beijing

TOS 服务端所在地域。

SecurityToken

String

可选

STSeyJBY2NvdW50SWQiOjIxMDAwMDUyMjQsIklkZW50aXR5VHlwZSI6NCwiSWRlbnRpdHlJZCI6MTE3MjI5NiwiQ2hhbm5lbCI6IlVzZXIiLCJBY2Nlc3NLZXlJZCI6IkFLVFBZbUkxWkdRd01mxoTkdGa016aGpOek0wTjJRME9UUTNaVFZqTXpFIiwiU2l****

临时访问凭证中的安全令牌。

EnableVerifySSL

Bool

可选

true

配置是否开启 SSL 证书校验, 默认值为 true。

SocketTimeout

Int

可选

30000

Socket 读写超时时间,单位毫秒,默认值为 30000ms,即 30s。

ConnectionTimeout

Int

可选

10000

设置建立连接超时时间,单位毫秒,默认值为 10000ms,即 10s。

MaxConnections

Int

可选

1024

设置连接池最大连接数量,默认值为 1024。

IdleConnectionTime

Int

可选

60*1000 (ms)

设置最大连接空闲时间,若超过该时间,连接将被关闭,默认值为 60s。