OssClient是OSS服务的C#客户端,用于管理存储空间和文件等OSS资源。

新建OSSClient

新建OSSClient时,需要指定Endpoint。有关Endpoint的更多信息,请参见访问域名和数据中心自定义访问域名

  • 使用OSS域名新建OSSClient

    以下代码用于使用OSS域名新建OSSClient:

    using Aliyun.OSS;
    
    const string accessKeyId = "<yourAccessKeyId>";
    const string accessKeySecret = "<yourAccessKeySecret>";
    const string endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
    
    // 由用户指定的OSS访问地址、阿里云颁发的AccessKeyId/AccessKeySecret构造一个新的OssClient实例。
    var ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret);
  • 使用自定义域名新建OssClient

    以下代码用于使用自定义域名新建OssClient:

    using Aliyun.OSS;
    using Aliyun.OSS.Common;
    
    const string accessKeyId = "<yourAccessKeyId>";
    const string accessKeySecret = "<yourAccessKeySecret>";
    const string endpoint = "<yourDomain>";
    
    // 创建ClientConfiguration实例,按照您的需要修改默认参数。
    var conf = new ClientConfiguration();
    
    // 开启支持CNAME。CNAME是指将自定义域名绑定到存储空间上。
    conf.IsCname = true;
    
    // 创建OssClient实例。
    var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
    说明 使用自定义域名时无法使用ossClient.listBuckets方法。

配置OssClient

ClientConfiguration是OSSClient的配置类,您可通过此类来配置代理、连接超时、最大连接数等参数。可设置的参数如下:

参数 描述 默认值
ConnectionLimit 最大并发连接数 512
MaxErrorRetry 请求失败后最大的重试次数。 3
ConnectionTimeout 设置连接超时时间,单位:毫秒,默认不超时。 -1
IsCname Endpoint是否支持Cname。 false
ProgressUpdateInterval 进度条更新间隔,单位:字节。 8096

示例如下:

using Aliyun.OSS;
using Aliyun.OSS.Common;

var conf = new ClientConfiguration();
conf.ConnectionLimit = 512;
conf.MaxErrorRetry = 3;
conf.ConnectionTimeout = 300;

var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
  • 数据校验

    以下代码用于MD5数据校验:

    using Aliyun.OSS;
    using Aliyun.OSS.Common;
    
    var conf = new ClientConfiguration();
    // 打开MD5校验。设置EnalbeMD5Check对上传下载的数据自动进行MD5校验,默认关闭。
    conf.EnalbeMD5Check = true;
    
    var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
    说明 使用MD5校验时会有一定的性能开销。
  • 代理网络

    如果您使用的网络是代理(Proxy)网络,可以配置以下参数访问OSS:

    参数 描述 默认值
    ProxyHost 代理服务器,如8.8.8.8abc.def.com
    ProxyPort 代理端口,如31288080
    ProxyUserName 代码服务账号,可选参数。
    ProxyPassword 代码服务密码,可选参数。

    无账号密码的代理网络访问示例:

    using Aliyun.OSS;
    using Aliyun.OSS.Common;
    
    var conf = new ClientConfiguration();
    conf.ProxyHost = "8.8.8.8";
    conf.ProxyPort = 3128;
    
    var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);

    带账号密码的代理网络访问示例:

    using Aliyun.OSS;
    using Aliyun.OSS.Common;
    
    var conf = new ClientConfiguration();
    conf.ProxyHost = "8.8.8.8";
    conf.ProxyPort = 3128;
    conf.ProxyUserName = "user";
    conf.ProxyPassword = "6666";
    
    var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);