Skip to content

Commit 086fffa

Browse files
Merge branch 'master' into 6.0
2 parents c3400bc + 51fd7f9 commit 086fffa

File tree

5 files changed

+97
-7
lines changed

5 files changed

+97
-7
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
"ext-dom": "*",
4949
"ext-json": "*",
5050
"ext-spl": "*",
51-
"sebastian/environment": "^3.0|^4.0",
51+
"sebastian/environment": "^3.0|^4.0|^5.0",
5252
"sebastianfeldmann/cli": "^3.1",
5353
"phpmailer/phpmailer": "^6.0"
5454
},

src/Backup/Sync/BackblazeS3.php

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
3+
namespace phpbu\App\Backup\Sync;
4+
5+
use Aws\S3\S3Client;
6+
7+
/**
8+
* Backblaze Sync
9+
*
10+
* Docs example
11+
* https://help.backblaze.com/hc/en-us/articles/360046980814-Using-the-AWS-SDK-for-PHP-with-Backblaze-B2-Cloud-Storage
12+
*
13+
* @package phpbu
14+
* @subpackage Backup
15+
* @author Vladimir Konchakovsky <vk@etradeua.com>
16+
* @copyright Vladimir Konchakovsky <vk@etradeua.com>
17+
* @license https://opensource.org/licenses/MIT The MIT License (MIT)
18+
* @link http://phpbu.de/
19+
*/
20+
class BackblazeS3 extends AmazonS3v3
21+
{
22+
/**
23+
* Create the Backblaze AWS client.
24+
*
25+
* @return \Aws\S3\S3Client
26+
*/
27+
protected function createClient() : S3Client
28+
{
29+
$endpoint = $this->createEndpoint();
30+
31+
return new S3Client([
32+
'endpoint' => $endpoint,
33+
'region' => $this->region,
34+
'version' => 'latest',
35+
'credentials' => [
36+
'key' => $this->key,
37+
'secret' => $this->secret,
38+
]
39+
]);
40+
}
41+
42+
/**
43+
* Generate Backblaze enpoint
44+
*
45+
* @return string
46+
*/
47+
private function createEndpoint()
48+
{
49+
return strtr('https://s3.{region}.backblazeb2.com', '{region}', $this->region);
50+
}
51+
}

src/Factory.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ class Factory
6969
'amazons3' => '\\phpbu\\App\\Backup\\Sync\\AmazonS3v3',
7070
'amazons3-v3' => '\\phpbu\\App\\Backup\\Sync\\AmazonS3v3',
7171
'amazons3-v2' => '\\phpbu\\App\\Backup\\Sync\\AmazonS3v2',
72+
'backblazes3' => '\\phpbu\\App\\Backup\\Sync\\BackblazeS3',
7273
'azureblob' => '\\phpbu\\App\\Backup\\Sync\\AzureBlob',
7374
'dropbox' => '\\phpbu\\App\\Backup\\Sync\\Dropbox',
7475
'ftp' => '\\phpbu\\App\\Backup\\Sync\\Ftp',

src/Runner/Backup.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use phpbu\App\Backup\Source;
66
use phpbu\App\Exception;
77
use phpbu\App\Backup\Cleaner;
8-
use phpbu\App\Backup\Collector\Local;
8+
use phpbu\App\Backup\Collector;
99
use phpbu\App\Backup\Crypter;
1010
use phpbu\App\Backup\Sync;
1111
use phpbu\App\Backup\Target;
@@ -60,7 +60,6 @@ public function run(Configuration $configuration) : Result
6060
// setup target and collector, reset failure state
6161
$target = $this->factory->createTarget($backup->getTarget());
6262
$source = $this->factory->createSource($backup->getSource()->type, $backup->getSource()->options);
63-
$collector = new Local($target);
6463
$this->failure = false;
6564

6665
try {
@@ -76,7 +75,7 @@ public function run(Configuration $configuration) : Result
7675
* / /__/ _ / _// /__/ ,< _\ \
7776
* \___/_//_/___/\___/_/|_/___/
7877
*/
79-
$this->executeChecks($backup, $target, $collector);
78+
$this->executeChecks($backup, $target, new Collector\Local($target));
8079

8180
/* __________ _____ ______
8281
* / ___/ _ \ \/ / _ \/_ __/
@@ -97,7 +96,7 @@ public function run(Configuration $configuration) : Result
9796
* / /__/ /__/ _// __ |/ / /_/ / ___/
9897
* \___/____/___/_/ |_/_/|_/\____/_/
9998
*/
100-
$this->executeCleanup($backup, $target, $collector);
99+
$this->executeCleanup($backup, $target, new Collector\Local($target));
101100
} catch (\Exception $e) {
102101
$this->result->debug('exception: ' . $e->getMessage());
103102
$this->result->addError($e);
@@ -136,7 +135,7 @@ protected function executeSource(Configuration\Backup $conf, Target $target, Sou
136135
* @param \phpbu\App\Backup\Collector\Local $collector
137136
* @throws \Exception
138137
*/
139-
protected function executeChecks(Configuration\Backup $backup, Target $target, Local $collector)
138+
protected function executeChecks(Configuration\Backup $backup, Target $target, Collector\Local $collector)
140139
{
141140
foreach ($backup->getChecks() as $config) {
142141
try {
@@ -221,7 +220,7 @@ protected function executeSyncs(Configuration\Backup $backup, Target $target)
221220
* @param \phpbu\App\Backup\Collector\Local $collector
222221
* @throws \phpbu\App\Exception
223222
*/
224-
protected function executeCleanup(Configuration\Backup $backup, Target $target, Local $collector)
223+
protected function executeCleanup(Configuration\Backup $backup, Target $target, Collector\Local $collector)
225224
{
226225
if ($backup->hasCleanup()) {
227226
/* @var \phpbu\App\Configuration\Backup\Cleanup $config */
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?php
2+
namespace phpbu\App\Backup\Sync;
3+
4+
use phpbu\App\BaseMockery;
5+
use PHPUnit\Framework\TestCase;
6+
7+
/**
8+
* BackblazeS3Test
9+
*
10+
* @package phpbu
11+
* @subpackage tests
12+
* @author Vladimir Konchakovsaky <vk@etradeua.com>
13+
* @copyright Vladimir Konchakovsaky <vk@etradeua.com>
14+
* @license https://opensource.org/licenses/MIT The MIT License (MIT)
15+
* @link http://www.phpbu.de/
16+
*/
17+
class BackblazeS3Test extends TestCase
18+
{
19+
20+
use BaseMockery;
21+
22+
/**
23+
* Tests AmazonS3::setUp
24+
*/
25+
public function testSetUpOk()
26+
{
27+
$amazonS3 = new BackblazeS3();
28+
$amazonS3->setup([
29+
'key' => 'dummy-key',
30+
'secret' => 'dummy-secret',
31+
'bucket' => 'dummy-bucket',
32+
'region' => 'dummy-region',
33+
'path' => '/'
34+
]);
35+
36+
$this->assertTrue(true, 'no exception should occur');
37+
}
38+
39+
}

0 commit comments

Comments
 (0)