开发者社区> 问答> 正文

对象存储 OSS配置Client

已解决

展开
收起
2018-02-09 16:01:40 3509 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    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);
    2018-02-13 00:27:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载