This extension provides few functions for working with Amazon S3 storage. Currently possible actions: upload remove, get bucket names list.
Copy 'yii-s3' folder to 'extensions' (protected/extensions) folder. Add settings block to config file under components section. More about how to get required data you can read from here.
'components' => array(
...
's3' => array(
'class' => 'application.extensions.s3.S3Component',//path to S3Component class from extension
'accessKey' => 'example-access-key',//access key to S3 storage
'secretKey' => 'example-secret-key',//secret key to S3 storage
'bucket' => 'example-bucket-name'//name of bucket from S3 storage. not required
),
...Yii::app()->s3->getBuckets();//return array of bucket namesYii::app()->s3->upload('path/to/file/file-name.ext', 'folder/structure/at/bucket/file-name.ext');
//return bool - upload successExample (save 'image.png' file to S3 bucket under 'images' folder)
$imageName = 'image.png';
$filePath = $webRootPath . DIRECTORY_SEPARATOR . imageName;
$bucketPath = 'images/' . imageName;
if(Yii::app()->s3->upload($filePath, $bucketPath)) {
var_dump('Uploaded successfully :)');
} else {
var_dump('Not uploaded :(');
}Yii::app()->s3->remove('folder/structure/at/bucket/file-name.ext');//return bool - remove successExample (remove 'image.png' file from S3 bucket under 'images' folder)
$bucketPath = 'images/image.png';
if(Yii::app()->s3->remove($bucketPath)) {
var_dump('Removed successfully :)');
} else {
var_dump('Not removed :(');
}