Beispiel #1
0
        /// <summary>根据Bucket信息获取S3客户端
        /// </summary>
        public IAmazonS3 GetClientByBucket(BucketInfo bucket)
        {
            var identifier = ConvertToIdentifier(bucket);

            if (_clientDict.TryGetValue(identifier, out IAmazonS3 client))
            {
                return(client);
            }
            //不存在该类型的客户端,则新建
            if (bucket.VendorName == S3Vendor.KS3Name)
            {
                var config = new AmazonKS3Config()
                {
                    ServiceURL       = bucket.ServerUrl,
                    ForcePathStyle   = bucket.ForcePathStyle,
                    SignatureVersion = bucket.SignatureVersion,
                };
                client = new AmazonKS3Client(bucket.AccessKeyId, bucket.SecretAccessKey, config);
            }
            else
            {
                var config = new AmazonS3Config()
                {
                    ServiceURL       = bucket.ServerUrl,
                    ForcePathStyle   = bucket.ForcePathStyle,
                    SignatureVersion = bucket.SignatureVersion,
                };
                client = new AmazonS3Client(bucket.AccessKeyId, bucket.SecretAccessKey, config);
            }
            //添加到集合中
            _clientDict.AddOrUpdate(identifier, client, (i, c) => { return(client); });
            return(client);
        }
Beispiel #2
0
        /// <summary>
        /// Build a amazon s3 client <see cref="Amazon.S3.IAmazonS3"/>
        /// </summary>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public IAmazonS3 BuildClient(S3ClientConfiguration configuration)
        {
            _logger.LogDebug("Create client with configuration:{0}", configuration.ToString());

            if (configuration.Config is AmazonKS3Config kS3Config)
            {
                IAmazonS3 client = new AmazonKS3Client(
                    configuration.AccessKeyId,
                    configuration.SecretAccessKey,
                    kS3Config);
                return(client);
            }

            throw new ArgumentException($"The configuration {configuration}, create ks3 client fail, config was not a type of 'AmazonKS3Config'! ");
        }