2. 初始化¶
2.2. 配置秘钥¶
要接入NOS服务,您需要一对有效的AccessKey(包括AccessKeyId与AccessKeySecret)来进行 签名验证,开通服务与AccessKey请参考 访问控制
在获取到AccessKeyId与AccessKeySecret之后,可以按照以下的步骤进行初始化
2.3. 新建AmazonS3Client¶
2.3.1. 使用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);
2.4. 新建AmazonS3EncryptionClient¶
2.4.1. 使用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);
2.5. 设置网络参数¶
如果您需要修改AmazonS3Client的默认参数,可以在实例化AmazonS3Client时传入AmazonS3Config实例。AmazonS3Config是AmazonS3Client的配置类,可配置连接超时、最大连接数等参数:
AmazonS3Config S3Config = new AmazonS3Config()
//最大的重试次数
S3Config.MaxErrorRetry = 2;
//链接的最大空闲时间(单位:ms),默认50s,
S3Config.MaxIdleTime = 60 * 1000;
//最大的连接数,默认50
S3Config.ConnectionLimit = 200;