/** * Upload the backup to S3 on the hmbkp_backup_complete * * @see HM_Backup::do_action * * @param string $action The action received from the backup * * @return void */ public function action($action, Backup $backup) { if ('hmbkp_backup_complete' === $action && $this->get_field_value('S3')) { $file = $backup->get_archive_filepath(); if (defined('HMBKP_AWS_ACCESS_KEY')) { $key = HMBKP_AWS_ACCESS_KEY; } else { $key = $this->get_field_value('access_key'); } if (defined('HMBKP_AWS_SECRET_KEY')) { $secret = HMBKP_AWS_SECRET_KEY; } else { $secret = $this->get_field_value('secret_key'); if (defined('HMBKP_AWS_REGION')) { $region = HMBKP_AWS_REGION; } else { $region = $this->get_field_value('aws_region'); } } if (defined('HMBKP_AWS_BUCKET')) { $bucket = HMBKP_AWS_BUCKET; } else { $bucket = $this->get_field_value('bucket'); } $this->fetch_s3_connection($key, $secret, $region); if (!empty($this->s3)) { $this->schedule->set_status(__('Uploading to Amazon S3', 'backupwordpress')); $this->upload_backup($file, $bucket); $this->delete_old_backups($bucket); } else { $backup->error('S3', sprintf(__('Could not connect to %s', 'backupwordpress'), $this->get_field_value('bucket'))); } } }