PluginProbe
WP Database Backup – Unlimited Database & Files Backup by Backup for WP / 6.11
WP Database Backup – Unlimited Database & Files Backup by Backup for WP v6.11
7.13 7.12 trunk 1.1 2.1.1 5.9 6.0 6.1 6.10 6.11 6.12 6.12.1 6.2 6.3 6.4 6.5 6.5.1 6.6 6.7 6.8 6.9 7.0 7.0.1 7.1 7.10 All 34 releases
wp-database-backup / includes / admin / Destination / S3 / class-wpdatabasebackups3.php

class-wpdatabasebackups3.php in WP Database Backup – Unlimited Database & Files Backup by Backup for WP 6.11, at includes/admin/Destination/S3/class-wpdatabasebackups3.php

74 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Destination aws.
4 *
5 * @package wpdbbkp
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit; // Exit if accessed directly.
10 }
11
12 add_action( 'wp_db_backup_completed', array( 'WPDatabaseBackupS3', 'wp_db_backup_completed' ) );
13
14 /**
15 * WPDatabaseBackupS3 Class.
16 *
17 * @class WPDatabaseBackupS3
18 */
19 class WPDatabaseBackupS3 {
20
21 /**
22 * Run after complete backup.
23 *
24 * @param array $args - backup details.
25 */
26 public static function wp_db_backup_completed( &$args ) {
27 $destination_s3 = get_option( 'wp_db_backup_destination_s3' );
28 if ( isset( $destination_s3 ) && 1 === $destination_s3 && get_option( 'wpdb_dest_amazon_s3_bucket' ) && get_option( 'wpdb_dest_amazon_s3_bucket_key' ) && get_option( 'wpdb_dest_amazon_s3_bucket_secret' ) ) {
29 update_option('wpdbbkp_backupcron_current','Processing Amazon S3 Backup', false);
30 try {
31 if ( ! class_exists( 'S3' ) ) {
32 require_once 'S3.php';
33 }
34 // AWS access info.
35 if ( ! defined( 'AWSACCESSKEY' ) ) {
36 define( 'AWSACCESSKEY', get_option( 'wpdb_dest_amazon_s3_bucket_key' ) );
37 }
38 if ( ! defined( 'AWSSECRETKEY' ) ) {
39 define( 'AWSSECRETKEY', get_option( 'wpdb_dest_amazon_s3_bucket_secret' ) );
40 }
41
42 if ( ! defined( 'AWSHOST' ) ) {
43 define( 'AWSHOST', get_option( 'wpdb_dest_amazon_s3_bucket_host' ) );
44 }
45
46 // Check for CURL.
47 if ( ! extension_loaded( 'curl' ) && ! dl( 'so' === PHP_SHLIB_SUFFIX ? 'curl.so' : 'php_curl.dll' ) ) { // phpcs:ignore
48 $message_error = 'No Curl';
49 }
50
51 $s3 = new S3( AWSACCESSKEY, AWSSECRETKEY ,false ,'');
52 $bucket_name = get_option( 'wpdb_dest_amazon_s3_bucket' );
53 $result = $s3->listBuckets();
54 if ( get_option( 'wpdb_dest_amazon_s3_bucket' ) ) {
55 if ( true === in_array( get_option( 'wpdb_dest_amazon_s3_bucket' ), $result ) ) { // phpcs:ignore
56 if ( $s3->putObjectFile( $args[1], $bucket_name, baseName( $args[1] ), S3::ACL_PUBLIC_READ ) ) {
57 $args[2] = $args[2] . '<br> Upload Database Backup on s3 bucket ' . $bucket_name;
58 } else {
59 $args[2] = $args[2] . '<br>Failed to upload Database Backup on s3 bucket ' . $bucket_name;
60 }
61 $args[4] = $args[4] .= 'S3, ';
62 } else {
63 $args[2] = $args[2] . '<br>Invalid bucket name or AWS details';
64 $args[4] = $args[4] .= 'S3, ';
65 }
66 }
67 } catch ( Exception $e ) {
68 $error_msg = 'Error log.';
69 }
70 }
71 }
72
73 }
74