public void Setup() { { S3Config config = new S3Config(); config.Region = AwsRegion.EuWest1; config.Credentials = new StringAccessKey("keyidkeyidkeyidkeyid", "accesskeyacceskey123accesskeyacceskey123"); IOptions <S3Config> options = Options.Create(config); SigningKeyBuilder signingKeyBuilder = new SigningKeyBuilder(options, NullLogger <SigningKeyBuilder> .Instance); ScopeBuilder scopeBuilder = new ScopeBuilder(options); SignatureBuilder signatureBuilder = new SignatureBuilder(signingKeyBuilder, scopeBuilder, NullLogger <SignatureBuilder> .Instance, options); _builder = new HeaderAuthorizationBuilder(options, scopeBuilder, signatureBuilder, NullLogger <HeaderAuthorizationBuilder> .Instance); _request = new DummyRequest(); _request.SetHeader(AmzHeaders.XAmzContentSha256, "UNSIGNED-PAYLOAD"); } { _request2 = new HttpRequestMessage(System.Net.Http.HttpMethod.Get, "https://dummyurl"); _credentials = new ImmutableCredentials("keyidkeyidkeyidkeyid", "accesskeyacceskey123accesskeyacceskey123", null); // Add required headers _request2.AddHeader(HeaderKeys.XAmzDateHeader, DateTime.UtcNow.ToIso8601BasicDateTime()); // Add conditional headers _request2.AddHeaderIf(_credentials.UseToken, HeaderKeys.XAmzSecurityTokenHeader, _credentials.Token); _request2.AddHeaderIf(!_request2.Headers.Contains(HeaderKeys.HostHeader), HeaderKeys.HostHeader, _request2.RequestUri.Host); } }
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); }
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; }
public DefaultRequestHandler(IOptions <S3Config> options, IValidatorFactory validator, IMarshalFactory marshaller, IPostMapperFactory postMapper, INetworkDriver networkDriver, HeaderAuthorizationBuilder authBuilder, ILogger <DefaultRequestHandler> logger, IEnumerable <IRequestStreamWrapper>?requestStreamWrappers = null) { Validator.RequireNotNull(options, nameof(options)); Validator.RequireNotNull(validator, nameof(validator)); Validator.RequireNotNull(marshaller, nameof(marshaller)); Validator.RequireNotNull(networkDriver, nameof(networkDriver)); Validator.RequireNotNull(authBuilder, nameof(authBuilder)); Validator.RequireNotNull(logger, nameof(logger)); validator.ValidateAndThrow(options.Value); _validator = validator; _options = options; _networkDriver = networkDriver; _authBuilder = authBuilder; _marshaller = marshaller; _postMapper = postMapper; _logger = logger; if (requestStreamWrappers == null) { _requestStreamWrappers = Array.Empty <IRequestStreamWrapper>(); } else { _requestStreamWrappers = requestStreamWrappers.ToList(); } }