Ratings | | Unique User Downloads | | Download Rankings |
Not yet rated by the users | | Total: 36 | | All time: 10,981 This week: 206 |
|
Description | | Author |
This package can manage files stored in the AWS S3 cloud storage.
It can call the PHP AWS SDK client classes to send HTTP requests to the AWS to perform several types of operations on files stored in the AWS S3 service.
Currently, it can access the account of the AWS service user and:
- Store the contents of a given local file in a directory
- Get the data contents of a given bucket of a directory
- Get the list of buckets
- Get the URL of a given bucket
- Get the contents of a bucket with a given key
- Delete a bucket with a given key | |
|
|
Innovation award
Nominee: 5x |
|
Example
<?php
require_once __DIR__ .'/../vendor/autoload.php';
use Devscreencast\S3Wrapper\Storage;
$env = new \Dotenv\Dotenv(basePath());
$env->load();
try{
/**
* Create an instance of Devscreencast\S3Wrapper\Storage class
* and pass in config array
*/
$storage = new Storage([
'region' => 'us-east-1',
'version' => 'latest',
'bucket' => 'learning-s3-bucket.com'
]);
if(isset($_POST['submit'])){
$name = $_FILES['file']['name'];
if(!$name){
$msg = 'Please select a file';
}
/**
* @param $key, the name given to the file upload field in the html form
* @param $folder (optional) if omitted file in placed inside bucket
* @param $filename (optional) if omitted a unique filename is generated
* @param $options (optional) https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putobject
*/
$path = $storage->store('file', 'avatars/');
}
if(isset($_GET['delete'])){
$item = $_GET['delete'];
if(!$item){
$msg = 'Item is required';
}else{
if($storage->delete($item)){
$msg = $item . ' deleted successfully';
}else{
$msg = 'Item not found';
}
}
}
$bucket_contents = $storage->getBucketContents();
}catch (Exception $ex){
die($ex->getMessage());
}
require_once __DIR__ .'/app.php';
|
Details
aws-sdk-php-wrapper
A simple wrapper over aws php sdk to perform basic file management task
Installation
composer require devscreencast/aws-sdk-php-wrapper
Basic Usage
Environment Variables
Create a .env file with the following:
AWS_ACCESS_KEY_ID=your_key
AWS_SECRET_ACCESS_KEY=your_secret
<?php
require_once 'vendor/autoload.php';
use Devscreencast\S3Wrapper\Storage;
#load environment variables
$env = new \Dotenv\Dotenv('path_to/.env');
$env->load();
try{
/
* Create an instance of Devscreencast\S3Wrapper\Storage class
* and pass in config array
*/
$storage = new Storage([
'region' => 'us-east-1',
'version' => 'latest',
'bucket' => ''
]);
if(isset($_POST['submit'])){
$name = $_FILES['file']['name'];
if(!$name){
$msg = 'Please select a file';
}
/
* @param $key, the name given to the file upload field in the html form
* @param $folder (optional) if omitted file in placed inside bucket
* @param $filename (optional) if omitted a unique filename is generated
* @param $options (optional) https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#putobject
*/
$path = $storage->store('file', 'avatars/', $name);
}
# delete a file from bucket
if(isset($_GET['delete'])){
$item = $_GET['delete'];
if(!$item){
$msg = 'Item is required';
}else{
if($storage->delete($item)){
$msg = $item . ' deleted successfully';
}else{
$msg = 'Item not found';
}
}
}
# get all objects from a buckets as iterator instance
$bucket_contents = $storage->getBucketContents();
foreach ($bucket_contents as $bucket_content){
echo $bucket_contents['Key'] . '<br />';
}
}catch (Exception $ex){
die($ex->getMessage());
}
For complete example / demo refer to example folder
|
Applications that use this package |
|
No pages of applications that use this class were specified.
If you know an application of this package, send a message to the author to add a link here.