- 产品文档
- > 存储与 CDN
- > 对象存储
- > AWS S3 兼容
- > AWS S3 SDK
- > S3 NET SDK
- > 初始化
初始化
确定EndPoint
EndPoint 是NOS各个区域的地址,目前支持以下形式
EndPoint类型 | 备注 |
---|---|
NOS区域域名地址 | 使用桶所在的区域的NOS域名地址 |
NOS区域域名地址
进入NOS控制台,在桶的 属性 中可以查找到当前桶所在的区域及域名,桶的域名的后缀部分为该桶的公网域名,例如:test-logging.nos-eastchina1.126.net中的nos-eastchina1.126.net 为该桶的公网EndPoint。logging.nos-eastchina1.126.net中的nos-eastchina1.126.net为该桶的公网EndPoint。
配置密钥
要接入NOS服务,您需要一对有效的AccessKey(包括AccessKeyId与AccessKeySecret)来进行 签名验证,开通服务与AccessKey请参考 访问控制
在获取到AccessKeyId与AccessKeySecret之后,可以按照以下的步骤进行初始化
新建AmazonS3Client
使用NOS地区域名创建AmazonS3Client
初始化代码如下所示:
using Amazon.S3;
const string accessKeyId = "your-accessKeyId";
const string accessKeySecret = "your-accessKeySecret";
const string endponit = "建桶时选择的的区域域名";
AmazonS3Config S3Config = new AmazonS3Config()
{
ServiceURL = endponit,
SignatureVersion = "2",//如果要使用上传功能,必须加入该选项
UseHttp = true,
};
//之后使用到的s3Client都是使用这里的初始化方式
s3Client = new AmazonS3Client(accessKeyIdak, accessKeySecret, S3Config);
新建AmazonS3EncryptionClient
使用NOS地区域名创建AmazonS3EncryptionClient 使用该client来支持客户端加密,除了分块上传时需要在最后一块做特殊处理,其他的能用于AmazonS3Client的,都可以用在AmazonS3EncryptionClient上
初始化代码如下所示:
using Amazon.S3;
using Amazon.S3.Encryption;
using System.Security.Cryptography;
const string accessKeyId = "your-accessKeyId";
const string accessKeySecret = "your-accessKeySecret";
const string endponit = "建桶时选择的的区域域名";
AmazonS3CryptoConfiguration configure = new AmazonS3CryptoConfiguration(){
ServiceURL = endponit,
ConnectionLimit = 200,
SignatureVersion = "2",
StorageMode = CryptoStorageMode.InstructionFile,//支持InstructionFile,ObjectMetadata,metadata的方式只支持小文件上传,不支持大文件
};
EncryptionMaterials encryptionMaterials = new EncryptionMaterials(RSA.Create());
//之后使用到的s3Client都是使用这里的初始化方式
AmazonS3EncryptionClient client = new AmazonS3EncryptionClient(accessKeyId,accessKeySecret,configure,encryptionMaterials);
设置网络参数
如果您需要修改AmazonS3Client的默认参数,可以在实例化AmazonS3Client时传入AmazonS3Config实例。AmazonS3Config是AmazonS3Client的配置类,可配置连接超时、最大连接数等参数:
AmazonS3Config S3Config = new AmazonS3Config()
//最大的重试次数
S3Config.MaxErrorRetry = 2;
//链接的最大空闲时间(单位:ms),默认50s,
S3Config.MaxIdleTime = 60 * 1000;
//最大的连接数,默认50
S3Config.ConnectionLimit = 200;