A simple Laravel 4 service provider for including the AWS SDK for PHP.
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": "1.*"
}
}
Then run a composer update
php composer.phar update
To use the AWS Service Provider, you must register the provider when bootstrapping your Laravel application.
Publish the package configuration using Artisan.
php artisan config:publish aws/aws-sdk-php-laravel
Update your settings in the generated app/config/packages/aws/aws-sdk-php-laravel
configuration file.
return array(
'key' => 'YOUR_AWS_ACCESS_KEY_ID',
'secret' => 'YOUR_AWS_SECRET_KEY',
'region' => 'us-east-1',
'config_file' => null,
);
Find the providers
key in your app/config/app.php
and register the AWS Service Provider.
'providers' => array(
// ...
'Aws\Laravel\AwsServiceProvider',
)
Find the aliases
key in your app/config/app.php
and add the AWS facade alias.
'aliases' => array(
// ...
'AWS' => 'Aws\Laravel\AwsFacade',
)
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')->get('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::get('s3');
$s3->putObject(array(
'Bucket' => 'YOUR_BUCKET',
'Key' => 'YOUR_OBJECT_KEY',
'SourceFile' => '/the/path/to/the/file/you/are/uploading.ext',
));