Version Description
30/Mar/2016 =
TWEAK: When testing Amazon S3 bucket accessibility, slightly improve one of the corner-case checks
TWEAK: When creating an encryption key for direct Migration, or UpdraftCentral, allow the user to choose their key size (this helps with PHP installs lacking both OpenSSL and GMP, in which case key creation can be really slow)
TWEAK: Detect another case and deal with an HTTP 413 response when sending chunked data on a direct site-to-site migration
Download this release
Release Info
Developer | DavidAnderson |
Plugin | UpdraftPlus WordPress Backup Plugin |
Version | 1.12.2 |
Comparing to | |
See all releases |
Code changes from version 1.12.1 to 1.12.2
- central/bootstrap.php +20 -2
- central/listener.php +9 -3
- includes/class-udrpc.php +3 -3
- includes/updraft-admin-ui.js +2 -0
- methods/s3.php +36 -6
- readme.txt +8 -2
- updraftplus.php +1 -1
central/bootstrap.php
CHANGED
@@ -216,6 +216,10 @@ class UpdraftPlus_UpdraftCentral_Main {
|
|
216 |
$extra_info['name'] = (string)$params['key_description'];
|
217 |
}
|
218 |
|
|
|
|
|
|
|
|
|
219 |
$created = $this->create_remote_control_key(false, $extra_info, $where_send);
|
220 |
|
221 |
if (is_array($created)) {
|
@@ -268,7 +272,10 @@ class UpdraftPlus_UpdraftCentral_Main {
|
|
268 |
|
269 |
@set_time_limit(UPDRAFTPLUS_SET_TIME_LIMIT);
|
270 |
|
271 |
-
|
|
|
|
|
|
|
272 |
|
273 |
if ($post_it && empty($extra_info['mothership_firewalled'])) {
|
274 |
|
@@ -412,7 +419,11 @@ class UpdraftPlus_UpdraftCentral_Main {
|
|
412 |
$ret .= '<tr class="updraft_debugrow"><td style="vertical-align:top;">'.htmlspecialchars($name).' ('.htmlspecialchars($i).')</td><td>'.__("Access this site as user:", 'updraftplus')." ".htmlspecialchars($user_display)."<br>".__('Public key was sent to:', 'updraftplus').' '.htmlspecialchars($reconstructed_url).'<br>';
|
413 |
|
414 |
if (!empty($key['created'])) {
|
415 |
-
$ret .= __('Created:', 'updraftplus').' '.date_i18n(get_option('date_format').' '.get_option('time_format'), $key['created']).'
|
|
|
|
|
|
|
|
|
416 |
}
|
417 |
|
418 |
$ret .= '<a href="#" data-key_id="'.esc_attr($i).'" class="updraftcentral_key_delete">'.__('Delete...', 'updraftplus').'</a></td></tr>';
|
@@ -427,6 +438,13 @@ class UpdraftPlus_UpdraftCentral_Main {
|
|
427 |
|
428 |
$ret .= '<tr class="updraft_debugrow"><th style="">'.__('Mothership', 'updraftplus').':</th><td style="width:80%;"><input checked="checked" type="radio" name="updraftcentral_mothership" id="updraftcentral_mothership_updraftpluscom"> <label for="updraftcentral_mothership_updraftpluscom">'.'UpdraftPlus.Com ('.__('i.e. you have an account there', 'updraftplus').')'.'</label><br><input type="radio" name="updraftcentral_mothership" id="updraftcentral_mothership_other"> <label for="updraftcentral_mothership_other">'.__('Other (please specify - i.e. the site where you have installed an UpdraftCentral dashboard)', 'updraftplus').'</label>:<br><input disabled="disabled" id="updraftcentral_keycreate_mothership" type="text" size="40" placeholder="'.__('URL of mothership', 'updraftplus').'" value=""><br><div style="display:none;" id="updraftcentral_keycreate_mothership_firewalled_container"><input id="updraftcentral_keycreate_mothership_firewalled" type="checkbox"><label for="updraftcentral_keycreate_mothership_firewalled">'.__('Use the alternative method for making a connection with the mothership. This is suitable if the mothership cannot be contacted with incoming traffic by this website (for example, this is the case if this website is hosted on the public Internet, but the UpdraftCentral mothership is on localhost, or on an Intranet), or if the mothership site does not have a SSL certificate.').'</label></div></td></tr>';
|
429 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
430 |
$ret .= '<tr class="updraft_debugrow"><th style=""></th><td style="width:80%;"><button type="button" class="button button-primary" id="updraftcentral_keycreate_go">'.__('Create', 'updraftplus').'</button></td></tr>';
|
431 |
|
432 |
$ret .= '</tbody></table>';
|
216 |
$extra_info['name'] = (string)$params['key_description'];
|
217 |
}
|
218 |
|
219 |
+
$key_size = (empty($params['key_size']) || !is_numeric($params['key_size']) || $params['key_size'] < 512) ? 2048 : (int)$params['key_size'];
|
220 |
+
|
221 |
+
$extra_info['key_size'] = $key_size;
|
222 |
+
|
223 |
$created = $this->create_remote_control_key(false, $extra_info, $where_send);
|
224 |
|
225 |
if (is_array($created)) {
|
272 |
|
273 |
@set_time_limit(UPDRAFTPLUS_SET_TIME_LIMIT);
|
274 |
|
275 |
+
$key_size = (empty($extra_info['key_size']) || !is_numeric($extra_info['key_size']) || $extra_info['key_size'] < 512) ? 2048 : (int)$extra_info['key_size'];
|
276 |
+
// unset($extra_info['key_size']);
|
277 |
+
|
278 |
+
if (is_object($ud_rpc) && $ud_rpc->generate_new_keypair($key_size)) {
|
279 |
|
280 |
if ($post_it && empty($extra_info['mothership_firewalled'])) {
|
281 |
|
419 |
$ret .= '<tr class="updraft_debugrow"><td style="vertical-align:top;">'.htmlspecialchars($name).' ('.htmlspecialchars($i).')</td><td>'.__("Access this site as user:", 'updraftplus')." ".htmlspecialchars($user_display)."<br>".__('Public key was sent to:', 'updraftplus').' '.htmlspecialchars($reconstructed_url).'<br>';
|
420 |
|
421 |
if (!empty($key['created'])) {
|
422 |
+
$ret .= __('Created:', 'updraftplus').' '.date_i18n(get_option('date_format').' '.get_option('time_format'), $key['created']).'.';
|
423 |
+
if (!empty($key['extra_info']['key_size'])) {
|
424 |
+
$ret .= ' '.sprintf(__('Key size: %d bits', 'updraftplus'), $key['extra_info']['key_size']).'.';
|
425 |
+
}
|
426 |
+
$ret .= '<br>';
|
427 |
}
|
428 |
|
429 |
$ret .= '<a href="#" data-key_id="'.esc_attr($i).'" class="updraftcentral_key_delete">'.__('Delete...', 'updraftplus').'</a></td></tr>';
|
438 |
|
439 |
$ret .= '<tr class="updraft_debugrow"><th style="">'.__('Mothership', 'updraftplus').':</th><td style="width:80%;"><input checked="checked" type="radio" name="updraftcentral_mothership" id="updraftcentral_mothership_updraftpluscom"> <label for="updraftcentral_mothership_updraftpluscom">'.'UpdraftPlus.Com ('.__('i.e. you have an account there', 'updraftplus').')'.'</label><br><input type="radio" name="updraftcentral_mothership" id="updraftcentral_mothership_other"> <label for="updraftcentral_mothership_other">'.__('Other (please specify - i.e. the site where you have installed an UpdraftCentral dashboard)', 'updraftplus').'</label>:<br><input disabled="disabled" id="updraftcentral_keycreate_mothership" type="text" size="40" placeholder="'.__('URL of mothership', 'updraftplus').'" value=""><br><div style="display:none;" id="updraftcentral_keycreate_mothership_firewalled_container"><input id="updraftcentral_keycreate_mothership_firewalled" type="checkbox"><label for="updraftcentral_keycreate_mothership_firewalled">'.__('Use the alternative method for making a connection with the mothership. This is suitable if the mothership cannot be contacted with incoming traffic by this website (for example, this is the case if this website is hosted on the public Internet, but the UpdraftCentral mothership is on localhost, or on an Intranet), or if the mothership site does not have a SSL certificate.').'</label></div></td></tr>';
|
440 |
|
441 |
+
$ret .= '<tr class="updraft_debugrow"><th style=""></th><td style="width:80%;">'.__('Encryption key size:', 'updraftplus').' <select style="" id="updraftcentral_keycreate_keysize">
|
442 |
+
<option value="512">'.sprintf(__('%s bits', 'updraftplus').' - '.__('easy to break, fastest', 'updraftplus'), '512').'</option>
|
443 |
+
<option value="1024">'.sprintf(__('%s bits', 'updraftplus').' - '.__('faster (possibility for slow PHP installs)', 'updraftplus'), '1024').'</option>
|
444 |
+
<option value="2048" selected="selected">'.sprintf(__('%s bytes', 'updraftplus').' - '.__('recommended', 'updraftplus'), '2048').'</option>
|
445 |
+
<option value="4096">'.sprintf(__('%s bits', 'updraftplus').' - '.__('slower, strongest', 'updraftplus'), '4096').'</option>
|
446 |
+
</select></td></tr>';
|
447 |
+
|
448 |
$ret .= '<tr class="updraft_debugrow"><th style=""></th><td style="width:80%;"><button type="button" class="button button-primary" id="updraftcentral_keycreate_go">'.__('Create', 'updraftplus').'</button></td></tr>';
|
449 |
|
450 |
$ret .= '</tbody></table>';
|
central/listener.php
CHANGED
@@ -37,9 +37,15 @@ class UpdraftPlus_UpdraftCentral_Listener {
|
|
37 |
$ud_rpc->set_key_remote($key['publickey_remote']);
|
38 |
// Create listener (which causes WP actions to be fired when messages are received)
|
39 |
$ud_rpc->activate_replay_protection();
|
40 |
-
if (!empty($key['extra_info']) && isset($key['extra_info']['mothership'])
|
41 |
-
$
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
$ud_rpc->create_listener();
|
45 |
}
|
37 |
$ud_rpc->set_key_remote($key['publickey_remote']);
|
38 |
// Create listener (which causes WP actions to be fired when messages are received)
|
39 |
$ud_rpc->activate_replay_protection();
|
40 |
+
if (!empty($key['extra_info']) && isset($key['extra_info']['mothership'])) {
|
41 |
+
$mothership = $key['extra_info']['mothership'];
|
42 |
+
unset($url);
|
43 |
+
if ('__updraftpluscom' == $mothership) {
|
44 |
+
$url = 'https://updraftplus.com';
|
45 |
+
} elseif (false != ($parsed = parse_url($key['extra_info']['mothership'])) && is_array($parsed)) {
|
46 |
+
$url = $parsed['scheme'].'://'.$parsed['host'];
|
47 |
+
}
|
48 |
+
if (!empty($url)) $ud_rpc->set_allow_cors_from(array($url));
|
49 |
}
|
50 |
$ud_rpc->create_listener();
|
51 |
}
|
includes/class-udrpc.php
CHANGED
@@ -59,7 +59,7 @@ if (!class_exists('UpdraftPlus_Remote_Communications')):
|
|
59 |
class UpdraftPlus_Remote_Communications {
|
60 |
|
61 |
// Version numbers relate to versions of this PHP library only (i.e. it's not a protocol support number, and version numbers of other compatible libraries (e.g. JavaScript) are not comparable)
|
62 |
-
public $version = '1.4.
|
63 |
|
64 |
private $key_name_indicator;
|
65 |
|
@@ -275,12 +275,12 @@ class UpdraftPlus_Remote_Communications {
|
|
275 |
if ($this->key_option_name) update_site_option($this->key_option_name, $this->key_local);
|
276 |
}
|
277 |
|
278 |
-
public function generate_new_keypair() {
|
279 |
|
280 |
$this->ensure_crypto_loaded();
|
281 |
|
282 |
$rsa = new Crypt_RSA();
|
283 |
-
$keys = $rsa->createKey(
|
284 |
|
285 |
if (empty($keys['privatekey'])) {
|
286 |
$this->set_key_local(false);
|
59 |
class UpdraftPlus_Remote_Communications {
|
60 |
|
61 |
// Version numbers relate to versions of this PHP library only (i.e. it's not a protocol support number, and version numbers of other compatible libraries (e.g. JavaScript) are not comparable)
|
62 |
+
public $version = '1.4.2';
|
63 |
|
64 |
private $key_name_indicator;
|
65 |
|
275 |
if ($this->key_option_name) update_site_option($this->key_option_name, $this->key_local);
|
276 |
}
|
277 |
|
278 |
+
public function generate_new_keypair($key_size = 2048) {
|
279 |
|
280 |
$this->ensure_crypto_loaded();
|
281 |
|
282 |
$rsa = new Crypt_RSA();
|
283 |
+
$keys = $rsa->createKey($key_size);
|
284 |
|
285 |
if (empty($keys['privatekey'])) {
|
286 |
$this->set_key_local(false);
|
includes/updraft-admin-ui.js
CHANGED
@@ -1215,6 +1215,7 @@ jQuery(document).ready(function($){
|
|
1215 |
var is_other = jQuery('#updraftcentral_mothership_other').is(':checked') ? true : false;
|
1216 |
|
1217 |
var key_description = jQuery('#updraftcentral_keycreate_description').val();
|
|
|
1218 |
|
1219 |
var where_send = '__updraftpluscom';
|
1220 |
|
@@ -1222,6 +1223,7 @@ jQuery(document).ready(function($){
|
|
1222 |
action: 'updraft_ajax',
|
1223 |
subaction: 'updraftcentral_create_key',
|
1224 |
key_description: key_description,
|
|
|
1225 |
nonce: updraft_credentialtest_nonce
|
1226 |
};
|
1227 |
|
1215 |
var is_other = jQuery('#updraftcentral_mothership_other').is(':checked') ? true : false;
|
1216 |
|
1217 |
var key_description = jQuery('#updraftcentral_keycreate_description').val();
|
1218 |
+
var key_size = jQuery('#updraftcentral_keycreate_keysize').val();
|
1219 |
|
1220 |
var where_send = '__updraftpluscom';
|
1221 |
|
1223 |
action: 'updraft_ajax',
|
1224 |
subaction: 'updraftcentral_create_key',
|
1225 |
key_description: key_description,
|
1226 |
+
key_size: key_size,
|
1227 |
nonce: updraft_credentialtest_nonce
|
1228 |
};
|
1229 |
|
methods/s3.php
CHANGED
@@ -267,7 +267,7 @@ class UpdraftPlus_BackupModule_s3 {
|
|
267 |
$region = ($config['key'] == 's3' || $config['key'] == 'updraftvault') ? @$s3->getBucketLocation($bucket_name) : 'n/a';
|
268 |
|
269 |
// See if we can detect the region (which implies the bucket exists and is ours), or if not create it
|
270 |
-
if (!empty($region) || @$s3->putBucket($bucket_name, 'private') || ('s3' == $config['key'] && false !== ($s3 = $this->use_dns_bucket_name($s3, $bucket_name)) && false !== @$s3->getBucket($bucket_name,
|
271 |
if (empty($region) && ($config['key'] == 's3' || $config['key'] == 'updraftvault')) $region = $s3->getBucketLocation($bucket_name);
|
272 |
if (!empty($region)) $this->set_region($s3, $region, $bucket_name);
|
273 |
|
@@ -419,7 +419,7 @@ class UpdraftPlus_BackupModule_s3 {
|
|
419 |
$config = $this->get_config();
|
420 |
$whoweare = $config['whoweare'];
|
421 |
$whoweare_key = $config['key'];
|
422 |
-
$sse =
|
423 |
|
424 |
$s3 = $this->getS3(
|
425 |
$config['accesskey'],
|
@@ -456,6 +456,34 @@ class UpdraftPlus_BackupModule_s3 {
|
|
456 |
} else {
|
457 |
sleep(4);
|
458 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
459 |
}
|
460 |
|
461 |
$region = ($config['key'] == 'dreamobjects' || $config['key'] == 's3generic') ? 'n/a' : @$s3->getBucketLocation($bucket_name);
|
@@ -464,7 +492,7 @@ class UpdraftPlus_BackupModule_s3 {
|
|
464 |
} else {
|
465 |
# Final thing to attempt - see if it was just the location request that failed
|
466 |
$s3 = $this->use_dns_bucket_name($s3, $bucket_name);
|
467 |
-
if (false === ($gb = @$s3->getBucket($bucket_name,
|
468 |
$updraftplus->log("$whoweare Error: Failed to access bucket $bucket_name. Check your permissions and credentials.");
|
469 |
return new WP_Error('bucket_not_accessed', sprintf(__('%s Error: Failed to access bucket %s. Check your permissions and credentials.','updraftplus'),$whoweare, $bucket_name));
|
470 |
}
|
@@ -528,6 +556,8 @@ class UpdraftPlus_BackupModule_s3 {
|
|
528 |
if (preg_match("#^([^/]+)/(.*)$#",$bucket_name,$bmatches)) {
|
529 |
$bucket_name = $bmatches[1];
|
530 |
$bucket_path = $bmatches[2]."/";
|
|
|
|
|
531 |
}
|
532 |
|
533 |
$region = ($config['key'] == 'dreamobjects' || $config['key'] == 's3generic') ? 'n/a' : @$s3->getBucketLocation($bucket_name);
|
@@ -536,7 +566,7 @@ class UpdraftPlus_BackupModule_s3 {
|
|
536 |
} else {
|
537 |
# Final thing to attempt - see if it was just the location request that failed
|
538 |
$s3 = $this->use_dns_bucket_name($s3, $bucket_name);
|
539 |
-
if (false === ($gb = @$s3->getBucket($bucket_name,
|
540 |
$updraftplus->log("$whoweare Error: Failed to access bucket $bucket_name. Check your permissions and credentials.");
|
541 |
$updraftplus->log(sprintf(__('%s Error: Failed to access bucket %s. Check your permissions and credentials.','updraftplus'),$whoweare, $bucket_name), 'error');
|
542 |
return false;
|
@@ -609,7 +639,7 @@ class UpdraftPlus_BackupModule_s3 {
|
|
609 |
if (empty($region) && 's3' == $config['key']) {
|
610 |
# Final thing to attempt - see if it was just the location request that failed
|
611 |
$s3 = $this->use_dns_bucket_name($s3, $bucket_name);
|
612 |
-
if (false !== ($gb = @$s3->getBucket($bucket_name,
|
613 |
$keep_going = true;
|
614 |
}
|
615 |
}
|
@@ -811,7 +841,7 @@ class UpdraftPlus_BackupModule_s3 {
|
|
811 |
# Feb 2015: after we moved to the new SDK which didn't support this, two more reports came in
|
812 |
if (!isset($bucket_exists) && 's3' == $config['key']) {
|
813 |
$s3 = $this->use_dns_bucket_name($s3, $bucket, true);
|
814 |
-
$gb = @$s3->getBucket($bucket,
|
815 |
if ($gb !== false) {
|
816 |
$bucket_exists = true;
|
817 |
$location = '';
|
267 |
$region = ($config['key'] == 's3' || $config['key'] == 'updraftvault') ? @$s3->getBucketLocation($bucket_name) : 'n/a';
|
268 |
|
269 |
// See if we can detect the region (which implies the bucket exists and is ours), or if not create it
|
270 |
+
if (!empty($region) || @$s3->putBucket($bucket_name, 'private') || ('s3' == $config['key'] && false !== ($s3 = $this->use_dns_bucket_name($s3, $bucket_name)) && false !== @$s3->getBucket($bucket_name, $bucket_path, null, 1))) {
|
271 |
if (empty($region) && ($config['key'] == 's3' || $config['key'] == 'updraftvault')) $region = $s3->getBucketLocation($bucket_name);
|
272 |
if (!empty($region)) $this->set_region($s3, $region, $bucket_name);
|
273 |
|
419 |
$config = $this->get_config();
|
420 |
$whoweare = $config['whoweare'];
|
421 |
$whoweare_key = $config['key'];
|
422 |
+
$sse = empty($config['server_side_encryption']) ? false : true;
|
423 |
|
424 |
$s3 = $this->getS3(
|
425 |
$config['accesskey'],
|
456 |
} else {
|
457 |
sleep(4);
|
458 |
}
|
459 |
+
} elseif (!empty($config['is_new_user'])) {
|
460 |
+
// A crude waiter, because the AWS toolkit does not have one for IAM propagation - basically, loop around a few times whilst the access attempt still fails
|
461 |
+
$attempt_flag = 0;
|
462 |
+
while ($attempt_flag < 5) {
|
463 |
+
|
464 |
+
$attempt_flag++;
|
465 |
+
if (@$s3->getBucketLocation($bucket_name)) {
|
466 |
+
$attempt_flag = 100;
|
467 |
+
} else {
|
468 |
+
|
469 |
+
sleep($attempt_flag*1.5 + 1);
|
470 |
+
|
471 |
+
// Get the bucket object again... because, for some reason, the AWS PHP SDK (at least on the current version we're using, March 2016) calculates an incorrect signature on subsequent attempts
|
472 |
+
$this->s3_object = null;
|
473 |
+
$s3 = $this->getS3(
|
474 |
+
$config['accesskey'],
|
475 |
+
$config['secretkey'],
|
476 |
+
UpdraftPlus_Options::get_updraft_option('updraft_ssl_useservercerts'), UpdraftPlus_Options::get_updraft_option('updraft_ssl_disableverify'),
|
477 |
+
UpdraftPlus_Options::get_updraft_option('updraft_ssl_nossl'),
|
478 |
+
null,
|
479 |
+
$sse
|
480 |
+
);
|
481 |
+
|
482 |
+
if (is_wp_error($s3)) return $s3;
|
483 |
+
if (!is_a($s3, 'UpdraftPlus_S3') && !is_a($s3, 'UpdraftPlus_S3_Compat')) return new WP_Error('no_s3object', 'Failed to gain access to '.$config['whoweare']);
|
484 |
+
|
485 |
+
}
|
486 |
+
}
|
487 |
}
|
488 |
|
489 |
$region = ($config['key'] == 'dreamobjects' || $config['key'] == 's3generic') ? 'n/a' : @$s3->getBucketLocation($bucket_name);
|
492 |
} else {
|
493 |
# Final thing to attempt - see if it was just the location request that failed
|
494 |
$s3 = $this->use_dns_bucket_name($s3, $bucket_name);
|
495 |
+
if (false === ($gb = @$s3->getBucket($bucket_name, $bucket_path, null, 1))) {
|
496 |
$updraftplus->log("$whoweare Error: Failed to access bucket $bucket_name. Check your permissions and credentials.");
|
497 |
return new WP_Error('bucket_not_accessed', sprintf(__('%s Error: Failed to access bucket %s. Check your permissions and credentials.','updraftplus'),$whoweare, $bucket_name));
|
498 |
}
|
556 |
if (preg_match("#^([^/]+)/(.*)$#",$bucket_name,$bmatches)) {
|
557 |
$bucket_name = $bmatches[1];
|
558 |
$bucket_path = $bmatches[2]."/";
|
559 |
+
} else {
|
560 |
+
$bucket_path = '';
|
561 |
}
|
562 |
|
563 |
$region = ($config['key'] == 'dreamobjects' || $config['key'] == 's3generic') ? 'n/a' : @$s3->getBucketLocation($bucket_name);
|
566 |
} else {
|
567 |
# Final thing to attempt - see if it was just the location request that failed
|
568 |
$s3 = $this->use_dns_bucket_name($s3, $bucket_name);
|
569 |
+
if (false === ($gb = @$s3->getBucket($bucket_name, $bucket_path, null, 1))) {
|
570 |
$updraftplus->log("$whoweare Error: Failed to access bucket $bucket_name. Check your permissions and credentials.");
|
571 |
$updraftplus->log(sprintf(__('%s Error: Failed to access bucket %s. Check your permissions and credentials.','updraftplus'),$whoweare, $bucket_name), 'error');
|
572 |
return false;
|
639 |
if (empty($region) && 's3' == $config['key']) {
|
640 |
# Final thing to attempt - see if it was just the location request that failed
|
641 |
$s3 = $this->use_dns_bucket_name($s3, $bucket_name);
|
642 |
+
if (false !== ($gb = @$s3->getBucket($bucket_name, $bucket_path, null, 1))) {
|
643 |
$keep_going = true;
|
644 |
}
|
645 |
}
|
841 |
# Feb 2015: after we moved to the new SDK which didn't support this, two more reports came in
|
842 |
if (!isset($bucket_exists) && 's3' == $config['key']) {
|
843 |
$s3 = $this->use_dns_bucket_name($s3, $bucket, true);
|
844 |
+
$gb = @$s3->getBucket($bucket, $path, null, 1);
|
845 |
if ($gb !== false) {
|
846 |
$bucket_exists = true;
|
847 |
$location = '';
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: Backup with UpdraftPlus, DavidAnderson, DNutbourne
|
|
3 |
Tags: backup, backups, restore, amazon backup, s3 backup, dropbox backup, google drive backup, rackspace cloud files, rackspace backup, dreamhost, dreamobjects backup, ftp backup, webdav backup, google cloud storage, onedrive, microsoft one drive, microsoft azure, azure, back up, multisite, restoration, sftp backup, ftps, scp backup, migrate, duplicate, copy, mysql backup, database backup, db backups, website backup, wordpress backup, full backup, openstack backup, sicherung
|
4 |
Requires at least: 3.2
|
5 |
Tested up to: 4.5
|
6 |
-
Stable tag: 1.12.
|
7 |
Author URI: https://updraftplus.com
|
8 |
Donate link: http://david.dw-perspective.org.uk/donate
|
9 |
License: GPLv3 or later
|
@@ -120,6 +120,12 @@ The <a href="https://updraftplus.com/news/">UpdraftPlus backup blog</a> is the b
|
|
120 |
|
121 |
N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.11.29 of the free version correspond to changes made in 2.11.29.x of the paid version.
|
122 |
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
= 1.12.1 - 24/Mar/2016 =
|
124 |
|
125 |
* TWEAK: Update the bundled remote communications library - needed for some UpdraftCentral users
|
@@ -1812,4 +1818,4 @@ We recognise and thank the following for code and/or libraries used and/or modif
|
|
1812 |
|
1813 |
|
1814 |
== Upgrade Notice ==
|
1815 |
-
* 1.12.
|
3 |
Tags: backup, backups, restore, amazon backup, s3 backup, dropbox backup, google drive backup, rackspace cloud files, rackspace backup, dreamhost, dreamobjects backup, ftp backup, webdav backup, google cloud storage, onedrive, microsoft one drive, microsoft azure, azure, back up, multisite, restoration, sftp backup, ftps, scp backup, migrate, duplicate, copy, mysql backup, database backup, db backups, website backup, wordpress backup, full backup, openstack backup, sicherung
|
4 |
Requires at least: 3.2
|
5 |
Tested up to: 4.5
|
6 |
+
Stable tag: 1.12.2
|
7 |
Author URI: https://updraftplus.com
|
8 |
Donate link: http://david.dw-perspective.org.uk/donate
|
9 |
License: GPLv3 or later
|
120 |
|
121 |
N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.11.29 of the free version correspond to changes made in 2.11.29.x of the paid version.
|
122 |
|
123 |
+
= 1.12.2 - 30/Mar/2016 =
|
124 |
+
|
125 |
+
* TWEAK: When testing Amazon S3 bucket accessibility, slightly improve one of the corner-case checks
|
126 |
+
* TWEAK: When creating an encryption key for direct Migration, or UpdraftCentral, allow the user to choose their key size (this helps with PHP installs lacking both OpenSSL and GMP, in which case key creation can be really slow)
|
127 |
+
* TWEAK: Detect another case and deal with an HTTP 413 response when sending chunked data on a direct site-to-site migration
|
128 |
+
|
129 |
= 1.12.1 - 24/Mar/2016 =
|
130 |
|
131 |
* TWEAK: Update the bundled remote communications library - needed for some UpdraftCentral users
|
1818 |
|
1819 |
|
1820 |
== Upgrade Notice ==
|
1821 |
+
* 1.12.2: Compatible with the forthcoming UpdraftCentral; various minor tweaks
|
updraftplus.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: UpdraftPlus - Backup/Restore
|
|
4 |
Plugin URI: https://updraftplus.com
|
5 |
Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
|
6 |
Author: UpdraftPlus.Com, DavidAnderson
|
7 |
-
Version: 1.12.
|
8 |
Donate link: http://david.dw-perspective.org.uk/donate
|
9 |
License: GPLv3 or later
|
10 |
Text Domain: updraftplus
|
4 |
Plugin URI: https://updraftplus.com
|
5 |
Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
|
6 |
Author: UpdraftPlus.Com, DavidAnderson
|
7 |
+
Version: 1.12.2
|
8 |
Donate link: http://david.dw-perspective.org.uk/donate
|
9 |
License: GPLv3 or later
|
10 |
Text Domain: updraftplus
|