codeinc / object-storage
This package is abandoned and no longer maintained.
No replacement package was suggested.
Object storage
1.4.0
2018-03-13 19:04 UTC
Requires
- php: >=7.0
- codeinc/error-renderer: ^1.0
- cwhite92/b2-sdk-php: ^1.3
- rackspace/php-opencloud: ^1.16
README
This library, written in PHP 7, provides an abstraction layer for various cloud and local object storage plateforms including:
- OpenStack Swift
- BackBlaze B2
- SFTP
- Local file system
Usage
Initializing containers
use CodeInc\ObjectStorage; // SFTP container with private key authentication $sftpDirectory = ObjectStorage\Sftp\SftpDirectory::factoryPubKey( "/remote/path/to/files", "hostname.local", "remote-user", "path/to/public-key.pub", "path/to/private-key", "optional-key-passphrase" 22 // optional port number ); // SFTP container with user/password authentication $sftpDirectory = ObjectStorage\Sftp\SftpDirectory::factoryPassword( "hostname.local", "remote-user", "remote-password", 22 // optional port number ); // Local file system container $localDirectory = ObjectStorage\Local\LocalDirectory::factory( "/path/to/files" ); // Swift container $swiftContainer = ObjectStorage\Swift\SwiftContainer::factory( "container-name", "container-swift-region", "https://open-stack-auth-url.com", "open-stack-user", "open-stack-password", "open-stack-tenant-id", "open-stack-tenant-name" ); // B2 container $b2Bucket = ObjectStorage\BackBlazeB2\B2Bucket::factory( "container-or-bucket-name", "b2-account-id", "b2-application-key" );
Creating a file
use CodeInc\ObjectStorage; // from an existing file $object = new ObjectStorage\Utils\InlineObject("test.jpg"); $object->setFileContent("/path/to/test.jpg"); // from a string $object = new ObjectStorage\Utils\InlineObject("test.txt"); $object->setStringContent("C'est un test au format texte !");
Uploading an object
// uploading an object $container->uploadObject($object, 'optional-new-object-name.txt'); // transfering an object from a container to another $destinationContainer->uploadObject( $sourceContainer->getObject('test.jpg') );
Listing objects
foreach ($container as $file) { var_dump($file->getName()); }
$file
is an object implementing the interface StoreObjectInterface
.
Getting an object
header('Content-Type: image/jpeg'); echo $container->getObject('test.jpg')->getContent();
getObject()
returns an object implementing the interface StoreObjectInterface
.
Deleting an object
// from a container $container->deleteObject("test.jpg"); // from an object $object = $container->getObject('test.jpg'); if ($object instanceof StoreObjectDeleteInterface) { $object->delete(); }
For objects implementing the StoreObjectDeleteInterface
you can call the delete()
method directory on the object.
Installation
This library is available through Packagist and can be installed using Composer:
composer require codeinc/object-storage
License
The library is published under the MIT license (see LICENSE
file).