PluginProbe ʕ •ᴥ•ʔ
UpdraftPlus: WP Backup & Migration Plugin / 1.16.22
UpdraftPlus: WP Backup & Migration Plugin v1.16.22
1.26.4 1.26.3 1.9.19 1.9.25 1.9.26 1.9.30 1.9.31 1.9.32 1.9.4 1.9.40 1.9.41 1.9.42 1.9.43 1.9.44 1.9.45 1.9.46 1.9.5 1.9.50 1.9.51 1.9.60 1.9.62 1.9.63 1.9.64 1.11.12 1.4.8 1.11.15 1.4.9 1.11.17 1.5.16 1.11.18 1.5.20 1.11.2 1.5.21 1.11.20 1.5.22 1.11.23 1.5.5 1.11.24 1.5.6 1.11.25 1.5.7 1.11.26 1.5.8 1.11.27 1.5.9 1.11.28 1.6.1 1.11.3 1.6.17 1.11.4 1.6.2 1.11.5 1.6.46 1.11.8 1.7.0 1.11.9 1.7.1 1.12.0 1.7.18 1.12.1 1.7.20 1.12.12 1.7.3 1.12.13 1.7.34 1.12.15 1.7.35 1.12.17 1.7.39 1.12.2 1.7.40 1.12.20 1.7.41 1.12.23 1.8.1 1.12.24 1.8.11 1.12.25 1.8.12 1.12.28 1.8.13 1.12.29 1.8.2 1.12.30 1.8.5 1.12.32 1.8.8 1.12.34 1.9.0 1.12.35 1.9.13 1.12.37 1.9.15 1.12.39 1.9.17 1.12.4 1.12.40 1.12.6 1.13.1 1.13.11 1.13.12 1.13.15 1.13.16 1.13.2 1.13.3 1.13.4 1.13.5 1.13.6 1.13.7 1.13.8 1.13.9 1.14.10 1.14.11 1.14.12 1.14.13 1.14.2 1.14.3 1.14.4 1.14.5 1.14.7 1.14.9 1.15.0 1.15.2 1.15.3 1.15.5 1.15.6 1.15.7 1.16.0 1.16.10 1.16.11 1.16.12 1.16.13 1.16.14 1.16.15 1.16.16 1.16.17 1.16.20 1.16.21 1.16.22 1.16.23 1.16.24 1.16.25 1.16.26 1.16.28 1.16.29 1.16.32 1.16.34 1.16.35 1.16.36 1.16.37 1.16.4 1.16.40 1.16.41 1.16.42 1.16.43 1.16.44 1.16.45 1.16.46 1.16.47 1.16.48 1.16.49 1.16.5 1.16.50 1.16.51 1.16.53 1.16.55 1.16.56 1.16.59 1.16.6 1.16.60 1.16.61 1.16.62 1.16.63 1.16.64 1.16.65 1.16.66 1.16.67 1.16.68 1.16.69 1.16.7 1.16.8 1.16.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.14 1.2.15 1.2.16 1.2.17 1.2.19 1.2.2 1.2.20 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.33 1.2.35 1.2.36 1.2.38 1.2.39 1.2.4 1.2.40 1.2.41 1.2.42 1.2.43 1.2.44 1.2.45 1.2.46 1.2.5 1.2.7 1.2.8 1.2.9 1.22.1 1.22.10 1.22.11 1.22.12 1.22.14 1.22.15 1.22.16 1.22.17 1.22.18 1.22.19 1.22.20 1.22.21 1.22.22 1.22.23 1.22.24 1.22.3 1.22.4 1.22.5 1.22.6 1.22.7 1.22.8 1.22.9 1.23.1 1.23.10 1.23.11 1.23.12 1.23.13 1.23.15 1.23.16 1.23.2 1.23.3 1.23.4 1.23.5 1.23.6 1.23.7 1.23.8 1.23.9 1.24.1 1.24.10 1.24.11 1.24.12 1.24.2 trunk 1.24.3 0.7.4 1.24.4 0.7.7 1.24.5 0.8.28 1.24.6 0.8.29 1.24.7 0.8.30 1.24.8 0.8.31 1.24.9 0.8.32 1.25.1 0.8.33 1.25.2 0.8.36 1.25.3 0.8.37 1.25.5 0.8.50 1.25.6 0.8.51 1.25.7 0.9.1 1.25.8 0.9.10 1.25.9 0.9.11 1.26.1 0.9.12 1.26.2 0.9.2 1.3.10 0.9.20 1.3.12 0.9.21 1.3.14 0.9.22 1.3.15 1.0.10 1.3.17 1.0.11 1.3.18 1.0.12 1.3.19 1.0.15 1.3.2 1.0.16 1.3.20 1.0.18 1.3.22 1.0.20 1.3.23 1.0.3 1.3.24 1.0.4 1.3.25 1.0.5 1.3.3 1.0.6 1.3.4 1.0.7 1.3.6 1.0.8 1.3.7 1.0.9 1.3.8 1.1.0 1.3.9 1.1.10 1.4.0 1.1.11 1.4.10 1.1.12 1.4.11 1.1.13 1.4.12 1.1.14 1.4.13 1.1.15 1.4.14 1.1.16 1.4.15 1.1.17 1.4.2 1.1.2 1.4.27 1.1.3 1.4.28 1.1.5 1.4.29 1.1.6 1.4.30 1.1.8 1.4.4 1.1.9 1.4.48 1.10.1 1.4.5 1.10.3 1.4.6 1.11.1 1.4.7
updraftplus / methods / dreamobjects.php
updraftplus / methods Last commit date
addon-base-v2.php 6 years ago addon-not-yet-present.php 6 years ago azure.php 8 years ago backblaze.php 8 years ago backup-module.php 6 years ago cloudfiles-new.php 6 years ago cloudfiles.php 6 years ago dreamobjects.php 7 years ago dropbox.php 6 years ago email.php 6 years ago ftp.php 6 years ago googlecloud.php 8 years ago googledrive.php 6 years ago insufficient.php 6 years ago onedrive.php 8 years ago openstack-base.php 6 years ago openstack.php 8 years ago openstack2.php 6 years ago remotesend.php 6 years ago s3.php 6 years ago s3generic.php 7 years ago sftp.php 8 years ago template.php 6 years ago updraftvault.php 6 years ago webdav.php 8 years ago
dreamobjects.php
142 lines
1 <?php
2
3 if (!defined('UPDRAFTPLUS_DIR')) die('No direct access allowed.');
4
5 require_once(UPDRAFTPLUS_DIR.'/methods/s3.php');
6
7 /**
8 * Converted to multi-options (Feb 2017-) and previous options conversion removed: Yes
9 */
10 class UpdraftPlus_BackupModule_dreamobjects extends UpdraftPlus_BackupModule_s3 {
11
12 private $dreamobjects_endpoints = array();
13
14 public function __construct() {
15 // When new endpoint introduced in future, Please add it here and also add it as hard coded option for endpoint dropdown in self::get_partial_configuration_template_for_endpoint()
16 // Put the default first
17 $this->dreamobjects_endpoints = array(
18 // Endpoint, then the label
19 'objects-us-east-1.dream.io' => 'objects-us-east-1.dream.io',
20 'objects-us-west-1.dream.io' => 'objects-us-west-1.dream.io ('.__('Closing 1st October 2018', 'updraftplus').')',
21 );
22 }
23
24 protected $use_v4 = false;
25
26 protected function set_region($obj, $region = '', $bucket_name = '') {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
27 $config = $this->get_config();
28 $endpoint = ('' != $region && 'n/a' != $region) ? $region : $config['endpoint'];
29 global $updraftplus;
30 if ($updraftplus->backup_time) {
31 $updraftplus->log("Set endpoint: $endpoint");
32
33 // Warning for objects-us-west-1 shutdown in Oct 2018
34 if ('objects-us-west-1.dream.io' == $endpoint) {
35 // Are we after the shutdown date?
36 if (time() >= 1538438400) {
37 $updraftplus->log("The objects-us-west-1.dream.io endpoint shut down on the 1st October 2018. The upload is expected to fail. Please see the following article for more information https://help.dreamhost.com/hc/en-us/articles/360002135871-Cluster-migration-procedure", 'warning', 'dreamobjects_west_shutdown');
38 } else {
39 $updraftplus->log("The objects-us-west-1.dream.io endpoint is scheduled to shut down on the 1st October 2018. You will need to switch to a different end-point and migrate your data before that date. Please see the following article for more information https://help.dreamhost.com/hc/en-us/articles/360002135871-Cluster-migration-procedure", 'warning', 'dreamobjects_west_shutdown');
40 }
41 }
42 }
43
44 $obj->setEndpoint($endpoint);
45 }
46
47 /**
48 * This method overrides the parent method and lists the supported features of this remote storage option.
49 *
50 * @return Array - an array of supported features (any features not mentioned are asuumed to not be supported)
51 */
52 public function get_supported_features() {
53 // This options format is handled via only accessing options via $this->get_options()
54 return array('multi_options', 'config_templates', 'multi_storage');
55 }
56
57 /**
58 * Retrieve default options for this remote storage module.
59 *
60 * @return Array - an array of options
61 */
62 public function get_default_options() {
63 return array(
64 'accesskey' => '',
65 'secretkey' => '',
66 'path' => '',
67 );
68 }
69
70 /**
71 * Retrieve specific options for this remote storage module
72 *
73 * @param Boolean $force_refresh - if set, and if relevant, don't use cached credentials, but get them afresh
74 *
75 * @return Array - an array of options
76 */
77 protected function get_config($force_refresh = false) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
78 $opts = $this->get_options();
79 $opts['whoweare'] = 'DreamObjects';
80 $opts['whoweare_long'] = 'DreamObjects';
81 $opts['key'] = 'dreamobjects';
82 if (empty($opts['endpoint'])) {
83 $endpoints = array_keys($this->dreamobjects_endpoints);
84 $opts['endpoint'] = $endpoints[0];
85 }
86 return $opts;
87 }
88
89 /**
90 * Get the pre configuration template
91 *
92 * @return String - the template
93 */
94 public function get_pre_configuration_template() {
95 $this->get_pre_configuration_template_engine('dreamobjects', 'DreamObjects', 'DreamObjects', 'DreamObjects', 'https://panel.dreamhost.com/index.cgi?tree=storage.dreamhostobjects', '<a href="https://dreamhost.com/cloud/dreamobjects/" target="_blank"><img alt="DreamObjects" src="'.UPDRAFTPLUS_URL.'/images/dreamobjects_logo-horiz-2013.png"></a>');
96 }
97
98 /**
99 * Get the configuration template
100 *
101 * @return String - the template, ready for substitutions to be carried out
102 */
103 public function get_configuration_template() {
104 return $this->get_configuration_template_engine('dreamobjects', 'DreamObjects', 'DreamObjects', 'DreamObjects', 'https://panel.dreamhost.com/index.cgi?tree=storage.dreamhostobjects', '<a href="https://dreamhost.com/cloud/dreamobjects/" target="_blank"><img alt="DreamObjects" src="'.UPDRAFTPLUS_URL.'/images/dreamobjects_logo-horiz-2013.png"></a>');
105 }
106
107 /**
108 * Get handlebar partial template string for endpoint of s3 compatible remote storage method. Other child class can extend it.
109 *
110 * @return string the partial template string
111 */
112 protected function get_partial_configuration_template_for_endpoint() {
113 // When new endpoint introduced in future, Please add it as hard coded option for below endpoint dropdown and also add as array value in private $dreamobjects_endpoints variable
114 return '<tr class="'.$this->get_css_classes().'">
115 <th>'.sprintf(__('%s end-point', 'updraftplus'), 'DreamObjects').'</th>
116 <td>
117 <select data-updraft_settings_test="endpoint" '.$this->output_settings_field_name_and_id('endpoint', true).' style="width: 360px">
118 {{#each dreamobjects_endpoints as |description endpoint|}}
119 <option value="{{endpoint}}" {{#ifeq ../endpoint endpoint}}selected="selected"{{/ifeq}}>{{description}}</option>
120 {{/each}}
121 </select>
122 </td>
123 </tr>';
124 }
125
126 /**
127 * Modifies handerbar template options
128 *
129 * @param array $opts
130 * @return array - Modified handerbar template options
131 */
132 public function transform_options_for_template($opts) {
133 $opts['endpoint'] = empty($opts['endpoint']) ? '' : $opts['endpoint'];
134 $opts['dreamobjects_endpoints'] = $this->dreamobjects_endpoints;
135 return $opts;
136 }
137
138 public function credentials_test($posted_settings) {
139 $this->credentials_test_engine($this->get_config(), $posted_settings);
140 }
141 }
142