详细解答可以参考官方帮助文档
OssClient是OSS服务的C#客户端,它为调用者提供了一系列的方法,可以用来操作,管理存储空间(Bucket)和文件(Object)等。
Endpoint是阿里云OSS服务在各个区域的域名地址,目前支持两种形式
Endpoint类型 | 解释 |
---|---|
OSS区域地址 | 使用OSS Bucket所在区域地址,各个区域Endpoint参考这里 |
用户自定义域名 | 用户自定义域名,且CNAME指向OSS域名 |
使用OSS Bucket所在区域地址,Endpoint查询可以通过以下两种方式:
bucket-1.oss-cn-hangzhou.aliyuncs.com
的oss-cn-hangzhou.aliyuncs.com
部分为该Bucket的外网Endpoint。http://new-image.xxxxx.com
解析到 http://image.oss-cn-shenzhen.aliyuncs.com
,类型为CNAME要接入阿里云OSS,您需要拥有一个有效的 Access Key(包括AccessKeyId和AccessKeySecret)用来进行签名认证。可以通过如下步骤获得:
在获取到 AccessKeyId和 AccessKeySecret之后,您可以按照下面步骤进行初始化对接
新建一个OssClient很简单,如下面代码所示:
using Aliyun.OSS;
const string accessKeyId = "<your AccessKeyId>";
const string accessKeySecret = "<your AccessKeySecret>";
const string endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
/// <summary>
/// 由用户指定的OSS访问地址、阿里云颁发的AccessKeyId/AccessKeySecret构造一个新的OssClient实例。
/// </summary>
/// <param name="endpoint">OSS的访问地址。</param>
/// <param name="accessKeyId">OSS的访问ID。</param>
/// <param name="accessKeySecret">OSS的访问密钥。</param>
var ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret);
下面的代码让客户端使用CNAME访问OSS服务:
using Aliyun.OSS;
using Aliyun.OSS.Common;
// 创建ClientConfiguration实例
var conf = new ClientConfiguration();
// 配置使用Cname
conf.IsCname = true;
/// <summary>
/// 由用户指定的OSS访问地址、、阿里云颁发的AccessKeyId/AccessKeySecret、客户端配置
/// 构造一个新的OssClient实例。
/// </summary>
/// <param name="endpoint">OSS的访问地址。</param>
/// <param name="accessKeyId">OSS的访问ID。</param>
/// <param name="accessKeySecret">OSS的访问密钥。</param>
/// <param name="conf">客户端配置。</param>
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
注意: 使用CNAME时,无法使用ListBuckets接口。
如果您想配置OssClient的一些细节的参数,可以在构造OssClient的时候传入ClientConfiguration对象。 ClientConfiguration是OSS服务的配置类,可以为客户端配置代理,最大连接数等参数。
您可以用ClientConfiguration设置一些网络参数:
参数 | 描述 | 默认值 |
---|---|---|
ConnectionLimit | 最大并发连接数 | 512 |
MaxErrorRetry | 请求发生错误时最大重试次数 | 3 |
ConnectionTimeout | 设置连接超时时间,单位毫秒,默认不超时 | -1 |
SetCustomEpochTicks | 设置自定义基准时间,即与本机时间差,单位秒 | 0 |
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);
您可以设置参数EnalbeMD5Check
,对上传下载的数据自动进行MD5校验,默认关闭。请使用以下代码打开MD5校验:
using Aliyun.OSS;
using Aliyun.OSS.Common;
var conf = new ClientConfiguration();
conf.EnalbeMD5Check = true;
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
提示:
- MD5校验是边上传数据边计算校验和,与服务器返回的校验和比较,两者不符则抛
ClientException
异常。- MD5校验会有一定的计算和性能开销。
如果您使用的网络是代理(Proxy)网络,可以配置以下参数访问OSS:
参数 | 描述 | 默认值 |
---|---|---|
ProxyHost | 代理服务器,如8.8.8.8 或 abc.def.com |
空 |
ProxyPort | 代理端口,如3128 或 8080 |
空 |
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);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。