horidaisuke / cakephp-aws-s3bucket
AWS S3Bucket plugin for CakePHP 4.x
Installs: 45
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 2
Open Issues: 0
Type:cakephp-plugin
Requires
- php: >=7.2
- aws/aws-sdk-php: ^3.133
- cakephp/cakephp: ^4.0
Requires (Dev)
- cakephp/cakephp-codesniffer: ^4.0
- phpstan/phpstan: ^0.12.8
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2023-12-07 04:15:26 UTC
README
Installation
You can install this plugin into your CakePHP 4.x application using composer.
The recommended way to install composer packages is:
composer require horidaisuke/cakephp-aws-s3bucket
How to Use
1.Configure DataSource
You can configure S3 bucket datasource like as database at datasource section in app_xxx.php
.
For example:
'Datasources' => [ // ... after database configurations 'name_of_s3_datasource' => [ 'className' => 'S3Bucket\Datasource\Connection', 'bucketName' => 'name_of_s3_bucket', 'acl' => 'public-read', // if object set to public access (default set to private) 'client' => [ 'region' => 'name_of_region', ], ], ],
2. Create S3Bucket Model
You can create a model for each object key prefixes at namespace App\Model\S3Bucket
.
For example:
<?php declare(strict_types=1); namespace App\Model\S3Bucket; use S3Bucket\Datasource\S3Bucket; class SampleOfS3BucketModel extends S3Bucket { protected static $_connectionName = 'name_of_s3_datasource'; protected static $_prefix = 'sample_of_object_key_prefix'; }
When it's provided object key prefix, object access is controlled under prefix scope.
3. Get Model from S3BucketRegistry
You can get created S3 bucket model from S3BucketRegistry
.
Like this:
$sampleOfS3BucketModel = S3BucketRegistry::init()->get('SampleOfS3BucketModel');
4. Put, Get, Delete, etc.. S3Object
You can make some operations (put, get, delete, etc..) S3 objects via S3 bucket model.
Like this:
// putObject $sampleOfS3BucketModel->putObject(`object_key`, file_get_contents(`filename_for_put`)); // getObject $sampleOfS3BucketModel->getObject(`object_key`); // getObjectBody $sampleOfS3BucketModel->getObjectBody(`object_key`); // deleteObject $sampleOfS3BucketModel->deleteObject(`object_key`); // deleteObjects $sampleOfS3BucketModel->deleteObjects([`object_key1`, `object_key2`]); // doesObjectExist $sampleOfS3BucketModel->doesObjectExist(`object_key`); // moveObject $sampleOfS3BucketModel->moveObject(`object_key_from`, `object_key_to`); // copyObject $sampleOfS3BucketModel->copyObject(`object_key_from`, `object_key_to`); // headObject $sampleOfS3BucketModel->headObject(`object_key`);
License
This software licensed under the MIT License