fedemotta / yii2-aws-sdk
This extension provides the AWS SDK integration for the Yii2 framework
Installs: 337 521
Dependents: 2
Suggesters: 0
Security: 0
Stars: 14
Watchers: 3
Forks: 11
Open Issues: 1
Type:yii2-extension
Requires
- aws/aws-sdk-php: 3.*
- yiisoft/yii2: 2.*
This package is not auto-updated.
Last update: 2024-12-18 16:09:16 UTC
README
This extension provides the AWS SDK 3 integration for the Yii2 framework
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist fedemotta/yii2-aws-sdk "*"
or add
"fedemotta/yii2-aws-sdk": "*"
to the require section of your composer.json
file.
Note: You can still use AWS version 2 if you specify fedemotta/yii2-aws-sdk "1.*"
Usage
To use this extension, simply add the following code in your application configuration:
return [ //.... 'components' => [ 'awssdk' => [ 'class' => 'fedemotta\awssdk\AwsSdk', 'credentials' => [ //you can use a different method to grant access 'key' => 'your-aws-key', 'secret' => 'your-aws-secret', ], 'region' => 'your-aws-region', //i.e.: 'us-east-1' 'version' => 'your-aws-version', //i.e.: 'latest' ], ], ];
Getting all balancer names from AWS:
$aws = Yii::$app->awssdk->getAwsSdk(); $elb = $aws->createElasticloadbalancing(); $load_balancers = $elb->describeLoadBalancers()->toArray(); if (isset($load_balancers['LoadBalancerDescriptions'])){ foreach ($load_balancers['LoadBalancerDescriptions'] as $balancer){ if (isset($balancer['LoadBalancerName'])){ echo $balancer['LoadBalancerName']; } } }
Download an object from S3:
//specify the region if it is different than the main configuration region Yii::$app->awssdk->region = 'sa-east-1'; $aws = Yii::$app->awssdk->getAwsSdk(); //use s3 $s3 = $aws->createS3(); $result = $s3->listObjects(['Bucket' => 'your-bucket-id',"Prefix" => "your-path"])->toArray(); //get the last object from s3 $object = end($result['Contents']); $key = $object['Key']; $file = $s3->getObject([ 'Bucket' => 'your-bucket-id', 'Key' => $key ]); //download the file header('Content-Type: ' . $file['ContentType']); echo $file['Body'];