ivan1911 / aws-sdk-php-laravel
A simple Laravel 5 service provider for including the AWS SDK for PHP with fixed AWS library version.
This package's canonical repository appears to be gone and the package has been frozen as a result.
Requires
- php: >=5.5.9
- aws/aws-sdk-php: 3.28.4
- illuminate/support: ~5.1
Requires (Dev)
- phpunit/phpunit: ~4.0|~5.0
Suggests
- laravel/framework: To test the Laravel bindings
- laravel/lumen-framework: To test the Lumen bindings
This package is not auto-updated.
Last update: 2024-05-23 04:35:06 UTC
README
![Gitter](https://badges.gitter.im/Join Chat.svg)
This is a simple Laravel service provider for making it easy to include the official AWS SDK for PHP in your Laravel and Lumen applications.
This README is for version 3.x of the service provider, which is implemented to work with Version 3 of the AWS SDK for PHP and Laravel 5.1.
Major Versions:
- 3.x (YOU ARE HERE) - For
laravel/framework:~5.1
andaws/aws-sdk-php:~3.0
- 2.x (2.0 branch) - For
laravel/framework:5.0.*
andaws/aws-sdk-php:~2.4
- 1.x (1.0 branch) - For
laravel/framework:4.*
andaws/aws-sdk-php:~2.4
Installation
The AWS Service Provider can be installed via Composer by requiring the
aws/aws-sdk-php-laravel
package in your project's composer.json
.
{ "require": { "aws/aws-sdk-php-laravel": "~3.0" } }
Then run a composer update
php composer.phar update
To use the AWS Service Provider, you must register the provider when bootstrapping your application.
Lumen
In Lumen find the Register Service Providers
in your bootstrap/app.php
and register the AWS Service Provider.
$app->register(Aws\Laravel\AwsServiceProvider::class);
Laravel
In Laravel find the providers
key in your config/app.php
and register the AWS Service Provider.
'providers' => array( // ... Aws\Laravel\AwsServiceProvider::class, )
Find the aliases
key in your config/app.php
and add the AWS facade alias.
'aliases' => array( // ... 'AWS' => Aws\Laravel\AwsFacade::class, )
Configuration
By default, the package uses the following environment variables to auto-configure the plugin without modification:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_REGION (default = us-east-1)
To customize the configuration file, publish the package configuration using Artisan.
php artisan vendor:publish
Update your settings in the generated app/config/aws.php
configuration file.
return [ 'credentials' => [ 'key' => 'YOUR_AWS_ACCESS_KEY_ID', 'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY', ], 'region' => 'us-west-2', 'version' => 'latest', // You can override settings for specific services 'Ses' => [ 'region' => 'us-east-1', ], ];
Referring Laravel 5.2.0 Upgrade guide, you must using config
file instead of environment variable option if using php artisan config:cache
.
Learn more about configuring the SDK on the SDK's User Guide.
Usage
In order to use the AWS SDK for PHP within your app, you need to retrieve it from the Laravel IoC Container. The following example uses the Amazon S3 client to upload a file.
$s3 = App::make('aws')->createClient('s3'); $s3->putObject(array( 'Bucket' => 'YOUR_BUCKET', 'Key' => 'YOUR_OBJECT_KEY', 'SourceFile' => '/the/path/to/the/file/you/are/uploading.ext', ));
If the AWS facade is registered within the aliases
section of the application configuration, you can also use the
following technique.
$s3 = AWS::createClient('s3'); $s3->putObject(array( 'Bucket' => 'YOUR_BUCKET', 'Key' => 'YOUR_OBJECT_KEY', 'SourceFile' => '/the/path/to/the/file/you/are/uploading.ext', ));