gliterd / backblaze-b2
PHP SDK for working with backblaze B2 cloud storage.
Installs: 206 337
Dependents: 5
Suggesters: 0
Security: 0
Stars: 84
Watchers: 6
Forks: 49
Open Issues: 13
Requires
- php: ^7.2 || ^8.0
- ext-json: *
- guzzlehttp/guzzle: ^6.1|^7.0
- nesbot/carbon: 2.*
Requires (Dev)
- phpunit/phpunit: ^8.5
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: ~2.3
README
backblaze-b2
is the SDK for working with Backblaze's B2 storage service.
Install
Via Composer
$ composer require gliterd/backblaze-b2
Usage
use BackblazeB2\Client; use BackblazeB2\Bucket; $options = ['auth_timeout_seconds' => seconds]; $client = new Client('accountId', 'applicationKey', $options);
$options is optional. If omitted, the default timeout is 12 hours. The timeout allows for a long lived Client object so that the authorization token does not expire.
ApplicationKey is not supported yet, please use MasterKey only
Returns a bucket details
$bucket = $client->createBucket([ 'BucketName' => 'my-special-bucket', 'BucketType' => Bucket::TYPE_PRIVATE // or TYPE_PUBLIC ]);
Change the bucket Type
$updatedBucket = $client->updateBucket([ 'BucketId' => $bucket->getId(), 'BucketType' => Bucket::TYPE_PUBLIC ]);
List all buckets
$buckets = $client->listBuckets();
Delete a bucket
$client->deleteBucket([ 'BucketId' => 'YOUR_BUCKET_ID' ]);
File Upload
$file = $client->upload([ 'BucketName' => 'my-special-bucket', 'FileName' => 'path/to/upload/to', 'Body' => 'I am the file content' // The file content can also be provided via a resource. // 'Body' => fopen('/path/to/input', 'r') ]);
File Download
$fileContent = $client->download([ 'FileId' => $file->getId() // Can also identify the file via bucket and path: // 'BucketName' => 'my-special-bucket', // 'FileName' => 'path/to/file' // Can also save directly to a location on disk. This will cause download() to not return file content. // 'SaveAs' => '/path/to/save/location' ]);
File Copy
$copyOfFile = $client->copy([ 'BucketName' => $bucketName, 'FileName' => $path, 'SaveAs' => $newPath, // Can also supply BucketId instead of BucketName // Optional are DestinationBucketName or DestinationBucketId ]);
File Delete
$fileDelete = $client->deleteFile([ 'FileId' => $file->getId() // Can also identify the file via bucket and path: // 'BucketName' => 'my-special-bucket', // 'FileName' => 'path/to/file' ]);
List all files
$fileList = $client->listFiles([ 'BucketId' => 'YOUR_BUCKET_ID' ]);
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ vendor/bin/phpunit
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email mhetreramesh@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.