public BackupUploader(BackupUploaderSettings settings, RetentionPolicyBaseParameters retentionPolicyParameters, Logger logger, BackupResult backupResult, Action <IOperationProgress> onProgress, OperationCancelToken taskCancelToken) { _settings = settings ?? throw new ArgumentNullException(nameof(settings)); _threads = new List <PoolOfThreads.LongRunningWork>(); _exceptions = new ConcurrentSet <Exception>(); _retentionPolicyParameters = retentionPolicyParameters; _isFullBackup = retentionPolicyParameters.IsFullBackup; TaskCancelToken = taskCancelToken; _logger = logger; _backupResult = backupResult; _onProgress = onProgress; }
private void UploadToServer(string backupPath, string folderName, string fileName) { var s3Settings = GetBackupConfigurationFromScript(_configuration.S3Settings, x => JsonDeserializationServer.S3Settings(x), settings => PutServerWideBackupConfigurationCommand.UpdateSettingsForS3(settings, _database.Name)); var glacierSettings = GetBackupConfigurationFromScript(_configuration.GlacierSettings, x => JsonDeserializationServer.GlacierSettings(x), settings => PutServerWideBackupConfigurationCommand.UpdateSettingsForGlacier(settings, _database.Name)); var azureSettings = GetBackupConfigurationFromScript(_configuration.AzureSettings, x => JsonDeserializationServer.AzureSettings(x), settings => PutServerWideBackupConfigurationCommand.UpdateSettingsForAzure(settings, _database.Name)); var googleCloudSettings = GetBackupConfigurationFromScript(_configuration.GoogleCloudSettings, x => JsonDeserializationServer.GoogleCloudSettings(x), settings => PutServerWideBackupConfigurationCommand.UpdateSettingsForGoogleCloud(settings, _database.Name)); var ftpSettings = GetBackupConfigurationFromScript(_configuration.FtpSettings, x => JsonDeserializationServer.FtpSettings(x), settings => PutServerWideBackupConfigurationCommand.UpdateSettingsForFtp(settings, _database.Name)); TaskCancelToken.Token.ThrowIfCancellationRequested(); var uploaderSettings = new BackupUploaderSettings(_database.Configuration.Backup) { S3Settings = s3Settings, GlacierSettings = glacierSettings, AzureSettings = azureSettings, GoogleCloudSettings = googleCloudSettings, FtpSettings = ftpSettings, BackupPath = backupPath, FolderName = folderName, FileName = fileName, DatabaseName = _database.Name, TaskName = _taskName, BackupType = _configuration.BackupType }; var backupUploader = new BackupUploader(uploaderSettings, _retentionPolicyParameters, _logger, _backupResult, _onProgress, TaskCancelToken); backupUploader.Execute(); }