public Initialisor(IBus bus, IBus eventProcessingBus) { if (bus == null) { throw new ArgumentNullException("bus"); } _bus = bus; _eventProcessingBus = eventProcessingBus; _membershipService = new MembershipService(_bus); _s3Config = AwsConfigFactory.GetS3Config(); var awsClientFactory = new AwsClientFactory(); _fileStore = new S3FileStore(awsClientFactory); var dynamoDbConfig = AwsConfigFactory.GetDynamoDbConfig(); var mediaRepository = new MediaRepository(dynamoDbConfig, awsClientFactory); var uniquNameRepository = new UniqueNameRepository(dynamoDbConfig, awsClientFactory); _mediaService = new MediaService(_bus, mediaRepository, uniquNameRepository, _fileStore); _heartbeatService = new HeartbeatService(_bus, ServerSettings.ServerName); _heartbeatService.Start(); AutoMapperConfiguration.Configure(); }
public IAmazonS3 CreateS3Client() { var config = AwsConfigFactory.GetS3Config(); RegionEndpoint region = config.GetRegionEndpoint(); CredentialProfileStoreChain credentialProfileStoreChain = new CredentialProfileStoreChain(); CredentialProfile profile; if (credentialProfileStoreChain.TryGetProfile(config.ProfileName, out profile)) { AWSCredentials awsCredentials; if (AWSCredentialsFactory.TryGetAWSCredentials(profile, null, out awsCredentials)) { return(new AmazonS3Client(awsCredentials, region)); } } // Production. Uses roles. return(new AmazonS3Client(region)); }
private void ApplyDbTransforms() { try { // Ensure that the bucket exists on start-up rather than rely on try { Logger.LogMessage("Create Bucket for processed images."); var bucket = _s3Config.ProcessedImagesBucket; _fileStore.EnsureBucketExists(bucket); Logger.LogMessage("Create Bucket - Completed."); } catch (Exception ex) { // Failed occasionally when bucket exists. // Sink Logger.LogException(ex, "Failed to create bucked for processed images on startup"); } var awsClientFactory = new AwsClientFactory(); // Create DynamoDB tables... Logger.LogMessage("Applying DB Transformations"); var config = AwsConfigFactory.GetDynamoDbConfig(); MediaRepositoryMigrationV1 v1Migations = new MediaRepositoryMigrationV1(config, awsClientFactory); v1Migations.CreateMediaItemTable().Wait(); Logger.LogMessage("Apply Media V1 Transforms - Completed."); Logger.LogMessage("Apply Unique Name V1 Transforms."); UniqueNameRepositoryMigrationV1 uniqueNameV1Migrations = new UniqueNameRepositoryMigrationV1(config, awsClientFactory); uniqueNameV1Migrations.CreateTable().Wait(); Logger.LogMessage("Apply Unique Name V1 Transforms - Completed."); } catch (Exception ex) { Logger.LogException(ex, "Failed during ApplyDbTransforms"); } }