全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

初始化

更新时间:2017-06-07 13:26:11

OssClient是OSS服务的C#客户端,它为调用者提供了一系列的方法,可以用来操作,管理存储空间(Bucket)和文件(Object)等。

确定Endpoint

Endpoint是阿里云OSS服务在各个区域的域名地址,目前支持两种形式

Endpoint类型 解释
OSS区域地址 使用OSS Bucket所在区域地址,各个区域Endpoint参考这里
用户自定义域名 用户自定义域名,且CNAME指向OSS域名

OSS区域地址

使用OSS Bucket所在区域地址,Endpoint查询可以通过以下两种方式:

  • 查询Endpoint与区域对应关系详情,可以参考:点击查看
  • 您可以登录 阿里云OSS控制台,进入Bucket概览页,Bucket域名的后缀部分:如bucket-1.oss-cn-hangzhou.aliyuncs.comoss-cn-hangzhou.aliyuncs.com部分为该Bucket的外网Endpoint。

CNAME

  • 您可以将自己拥有的域名通过CNAME绑定到某个存储空间(Bucket)上,然后通过自己域名访问存储空间内的文件
  • 比如您要将域名new-image.xxxxx.com绑定到深圳区域的名称为image的存储空间上:
  • 您需要到您的域名xxxxx.com托管商那里设定一个新的域名解析,将http://new-image.xxxxx.com 解析到 http://image.oss-cn-shenzhen.aliyuncs.com ,类型为CNAME

配置密钥

要接入阿里云OSS,您需要拥有一个有效的 Access Key(包括AccessKeyId和AccessKeySecret)用来进行签名认证。可以通过如下步骤获得:

在获取到 AccessKeyId和 AccessKeySecret之后,您可以按照下面步骤进行初始化对接

新建Client

使用OSS域名新建Client

新建一个OssClient很简单,如下面代码所示:

  1. using Aliyun.OSS;
  2. const string accessKeyId = "<your AccessKeyId>";
  3. const string accessKeySecret = "<your AccessKeySecret>";
  4. const string endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  5. /// <summary>
  6. /// 由用户指定的OSS访问地址、阿里云颁发的AccessKeyId/AccessKeySecret构造一个新的OssClient实例。
  7. /// </summary>
  8. /// <param name="endpoint">OSS的访问地址。</param>
  9. /// <param name="accessKeyId">OSS的访问ID。</param>
  10. /// <param name="accessKeySecret">OSS的访问密钥。</param>
  11. var ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret);

使用自定义域名(CNAME)新建Client

下面的代码让客户端使用CNAME访问OSS服务:

  1. using Aliyun.OSS;
  2. using Aliyun.OSS.Common;
  3. // 创建ClientConfiguration实例
  4. var conf = new ClientConfiguration();
  5. // 配置使用Cname
  6. conf.IsCname = true;
  7. /// <summary>
  8. /// 由用户指定的OSS访问地址、、阿里云颁发的AccessKeyId/AccessKeySecret、客户端配置
  9. /// 构造一个新的OssClient实例。
  10. /// </summary>
  11. /// <param name="endpoint">OSS的访问地址。</param>
  12. /// <param name="accessKeyId">OSS的访问ID。</param>
  13. /// <param name="accessKeySecret">OSS的访问密钥。</param>
  14. /// <param name="conf">客户端配置。</param>
  15. var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);

注意:

  • 使用CNAME时,无法使用ListBuckets接口。

配置Client

如果您想配置OssClient的一些细节的参数,可以在构造OssClient的时候传入ClientConfiguration对象。 ClientConfiguration是OSS服务的配置类,可以为客户端配置代理,最大连接数等参数。

网络参数

您可以用ClientConfiguration设置一些网络参数:

参数 描述 默认值
ConnectionLimit 最大并发连接数 512
MaxErrorRetry 请求发生错误时最大重试次数 3
ConnectionTimeout 设置连接超时时间,单位毫秒,默认不超时 -1
SetCustomEpochTicks 设置自定义基准时间,即与本机时间差,单位秒 0
IsCname Endpoint是否是Cname false
ProgressUpdateInterval 进度条更新间隔,单位字节 8096

示例如下:

  1. using Aliyun.OSS;
  2. using Aliyun.OSS.Common;
  3. var conf = new ClientConfiguration();
  4. conf.ConnectionLimit = 512;
  5. conf.MaxErrorRetry = 3;
  6. conf.ConnectionTimeout = 300;
  7. var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);

数据校验

您可以设置参数EnalbeMD5Check,对上传下载的数据自动进行MD5校验,默认关闭。请使用以下代码打开MD5校验:

  1. using Aliyun.OSS;
  2. using Aliyun.OSS.Common;
  3. var conf = new ClientConfiguration();
  4. conf.EnalbeMD5Check = true;
  5. var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);

提示:

  • MD5校验是边上传数据边计算校验和,与服务器返回的校验和比较,两者不符则抛ClientException异常。
  • MD5校验会有一定的计算和性能开销。

代理网络

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

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

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

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

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

  1. using Aliyun.OSS;
  2. using Aliyun.OSS.Common;
  3. var conf = new ClientConfiguration();
  4. conf.ProxyHost = "8.8.8.8";
  5. conf.ProxyPort = 3128;
  6. conf.ProxyUserName = "user";
  7. conf.ProxyPassword = "6666";
  8. var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
本文导读目录