Skip to content

gliterd/backblaze-b2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3abcf1a Â· Oct 10, 2022
Oct 10, 2022
May 29, 2022
Jan 28, 2021
Jul 12, 2020
Jan 29, 2021
Aug 9, 2017
Aug 9, 2017
Aug 9, 2017
Aug 3, 2017
Feb 2, 2021
Jan 29, 2021
Jul 2, 2018
Jul 3, 2018
Feb 5, 2021

Repository files navigation

Backblaze B2 for PHP

Author Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

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 [email protected] instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.