public ChunkedSignatureTests() { S3Config config = new S3Config(new StringAccessKey("AKIAIOSFODNN7EXAMPLE", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"), AwsRegion.UsEast1); _options = Options.Create(config); SigningKeyBuilder keyBuilder = new SigningKeyBuilder(_options, NullLogger <SigningKeyBuilder> .Instance); _scopeBuilder = new ScopeBuilder(_options); _sigBuilder = new SignatureBuilder(keyBuilder, _scopeBuilder, NullLogger <SignatureBuilder> .Instance, _options); _chunkedSigBuilder = new ChunkedSignatureBuilder(keyBuilder, _scopeBuilder, NullLogger <ChunkedSignatureBuilder> .Instance); _authHeaderBuilder = new AuthorizationHeaderBuilder(_options, _scopeBuilder, _sigBuilder, NullLogger <AuthorizationHeaderBuilder> .Instance); }
public ChunkedSignatureTests() { S3Config config = new S3Config(new StringAccessKey("AKIAIOSFODNN7EXAMPLE", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"), AwsRegion.UsEast1); //The tests here have signatures built using path style config.NamingMode = NamingMode.PathStyle; _options = Options.Create(config); SigningKeyBuilder keyBuilder = new SigningKeyBuilder(_options, NullLogger <SigningKeyBuilder> .Instance); _scopeBuilder = new ScopeBuilder(_options); _sigBuilder = new SignatureBuilder(keyBuilder, _scopeBuilder, NullLogger <SignatureBuilder> .Instance, _options); _chunkedSigBuilder = new ChunkedSignatureBuilder(keyBuilder, _scopeBuilder, NullLogger <ChunkedSignatureBuilder> .Instance); _authBuilder = new HeaderAuthorizationBuilder(_options, _scopeBuilder, _sigBuilder, NullLogger <HeaderAuthorizationBuilder> .Instance); }
public SignatureBenchmarks() { S3Config config = new S3Config(new StringAccessKey("AKIAIOSFODNN7EXAMPLE", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"), AwsRegion.UsEast1); config.PayloadSignatureMode = SignatureMode.FullSignature; IOptions <S3Config> options = Options.Create(config); _signingKeyBuilder = new SigningKeyBuilder(options, NullLogger <SigningKeyBuilder> .Instance); IScopeBuilder scopeBuilder = new ScopeBuilder(options); _signatureBuilder = new SignatureBuilder(_signingKeyBuilder, scopeBuilder, NullLogger <SignatureBuilder> .Instance, options); _chunkSigBuilder = new ChunkedSignatureBuilder(_signingKeyBuilder, scopeBuilder, NullLogger <ChunkedSignatureBuilder> .Instance); byte[] data = Encoding.UTF8.GetBytes("Hello world"); _req = new PutObjectRequest("examplebucket", "benchmark", new MemoryStream(data)); _req.SetHeader(AmzHeaders.XAmzContentSha256, CryptoHelper.Sha256Hash(data).HexEncode()); _date = DateTimeOffset.UtcNow; }
private void Initialize(IOptions <S3Config> options, INetworkDriver networkDriver, ILoggerFactory loggerFactory) { Assembly assembly = typeof(S3Config).Assembly; SimpleServiceProvider provider = new SimpleServiceProvider((typeof(IOptions <S3Config>), options)); IEnumerable <IValidator> validators = CreateInstances <IValidator>(assembly, provider); IEnumerable <IRequestMarshal> requestMarshals = CreateInstances <IRequestMarshal>(assembly, provider); IEnumerable <IResponseMarshal> responseMarshals = CreateInstances <IResponseMarshal>(assembly, provider); IEnumerable <IPostMapper> postMappers = CreateInstances <IPostMapper>(assembly, provider); IEnumerable <IRequestWrapper> requestWrappers = CreateInstances <IRequestWrapper>(assembly, provider).ToList(); IEnumerable <IResponseWrapper> responseWrappers = CreateInstances <IResponseWrapper>(assembly, provider).ToList(); ValidatorFactory validatorFactory = new ValidatorFactory(validators); IMarshalFactory marshalFactory = new MarshalFactory(requestMarshals, responseMarshals); IPostMapperFactory postMapperFactory = new PostMapperFactory(postMappers); IScopeBuilder scopeBuilder = new ScopeBuilder(options); ISigningKeyBuilder signingKeyBuilder = new SigningKeyBuilder(options, loggerFactory.CreateLogger <SigningKeyBuilder>()); ISignatureBuilder signatureBuilder = new SignatureBuilder(signingKeyBuilder, scopeBuilder, loggerFactory.CreateLogger <SignatureBuilder>(), options); HeaderAuthorizationBuilder authorizationBuilder = new HeaderAuthorizationBuilder(options, scopeBuilder, signatureBuilder, loggerFactory.CreateLogger <HeaderAuthorizationBuilder>()); ChunkedSignatureBuilder chunkedBuilder = new ChunkedSignatureBuilder(signingKeyBuilder, scopeBuilder, loggerFactory.CreateLogger <ChunkedSignatureBuilder>()); ChunkedContentRequestStreamWrapper chunkedStreamWrapper = new ChunkedContentRequestStreamWrapper(options, chunkedBuilder, signatureBuilder); DefaultRequestHandler requestHandler = new DefaultRequestHandler(options, validatorFactory, marshalFactory, postMapperFactory, networkDriver, authorizationBuilder, loggerFactory.CreateLogger <DefaultRequestHandler>(), new[] { chunkedStreamWrapper }); ObjectOperations objectOperations = new ObjectOperations(requestHandler, requestWrappers, responseWrappers); _objectClient = new S3ObjectClient(objectOperations); BucketOperations bucketOperations = new BucketOperations(requestHandler); _bucketClient = new S3BucketClient(bucketOperations); MultipartOperations multipartOperations = new MultipartOperations(requestHandler, requestWrappers, responseWrappers); _multipartClient = new S3MultipartClient(multipartOperations, objectOperations); Transfer = new Transfer(objectOperations, multipartOperations); }
public ChunkedSignatureTests() { ServiceCollection services = new ServiceCollection(); services.AddLogging(); SimpleS3CoreServices.AddSimpleS3Core(services).UseAmazonS3(x => { x.Credentials = new StringAccessKey("AKIAIOSFODNN7EXAMPLE", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"); x.Region = AmazonS3Region.UsEast1; //The tests here have signatures built using path style x.NamingMode = NamingMode.PathStyle; }); ServiceProvider?provider = services.BuildServiceProvider(); _scopeBuilder = (ScopeBuilder)provider.GetRequiredService <IScopeBuilder>(); _sigBuilder = (SignatureBuilder)provider.GetRequiredService <ISignatureBuilder>(); _chunkedSigBuilder = (ChunkedSignatureBuilder)provider.GetRequiredService <IChunkedSignatureBuilder>(); _authBuilder = provider.GetRequiredService <HeaderAuthorizationBuilder>(); _config = provider.GetRequiredService <IOptions <SimpleS3Config> >().Value; }