Skip to content

A PHP SDK for Backblaze's B2 storage service. Fork of RunCloudIO/b2-sdk-php with added methods.

License

Notifications You must be signed in to change notification settings

dmhendricks/b2-sdk-php

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub License Latest Version Packagist Build Status Donate WP Engine Twitter

Backblaze B2 SDK for PHP

b2-sdk-php is a client library for working with Backblaze's B2 storage service. It aims to make using the service as easy as possible by exposing a clear API and taking influence from other SDKs that you may be familiar with.

Authorization requests will be cached for 1 hour to avoid hitting the B2 API limit.

History & Changes

This is a fork of the RunCloudIO version, based on the original by Chris White, with the following changes:

Installation

To install via Composer:

composer require dmhendricks/b2-sdk-php

Usage Examples

use ChrisWhite\B2\Client;
use ChrisWhite\B2\Bucket;

$client = new Client('accountId', 'applicationKey');

// Returns the base B2 file URL
$client->getDownloadUrl();

// Returns the provided bucket/file prefixed with the B2 base URL
$client->getDownloadUrl([
    'BucketName' => 'my-special-bucket',
    'FileName' => 'path/to/file'
]);

// Returns a Bucket object.
$bucket = $client->createBucket([
    'BucketName' => 'my-special-bucket',
    'BucketType' => Bucket::TYPE_PRIVATE // or TYPE_PUBLIC
]);

// Change the bucket to private. Also returns a Bucket object.
$updatedBucket = $client->updateBucket([
    'BucketId' => $bucket->getId(),
    'BucketType' => Bucket::TYPE_PUBLIC
]);

// Retrieve an array of Bucket objects on your account.
$buckets = $client->listBuckets();

// Delete a bucket.
$client->deleteBucket([
    'BucketId' => '4c2b957661da9c825f465e1b'
]);

// Upload a file to a bucket. Returns a File object.
$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')
]);

// Download a file from a bucket. Returns the file content.
$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'
]);

// Delete a file from a bucket. Returns true or false.
$fileDelete = $client->deleteFile([
    'FileId' => $file->getId()

    // Can also identify the file via bucket and path:
    // 'BucketName' => 'my-special-bucket',
    // 'FileName' => 'path/to/file'
]);

// Retrieve an array of file objects from a bucket.
$fileList = $client->listFiles([
    'BucketId' => '4d2dbbe08e1e983c5e6f0d12'
]);

/*
 * Retrieve file versions from a bucket. Returns array. Optional parameters:
 *    StartFileName - The first file name to return.
 *    StartFileId - The first file ID to return. startFileName must also be
 *        provided if startFileId is specified.
 *    MaxFileCount - The maximum number of files to return.
 *    Prefix - Files returned will be limited to those with the given prefix.
 *        Defaults to the empty string, which matches all files.
 *    Delimiter - The delimiter character will be used to "break" file names
 *        into folders.
 * @see https://www.backblaze.com/b2/docs/b2_list_file_versions.html
 */
$fileVersions = $client->listFileVersions([
    'BucketId' => '4d2dbbe08e1e983c5e6f0d12',
]);

Tests

Tests are run with PHPUnit. After installing PHPUnit via Composer:

$ vendor/bin/phpunit

Change Log

Release changes are noted on the Releases page.

Branch: master

  • None

About

A PHP SDK for Backblaze's B2 storage service. Fork of RunCloudIO/b2-sdk-php with added methods.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%