I am using php mini framework https://github.com/panique/mini
Right now I have the following in the index method in my controller. But it feels like should be better to have it in my config/config.php file. How do I do that so I can use it in my controller/model?
// Instantiate the S3 client with your AWS credentials
$client = S3Client::factory(array(
'key' => 'YOUR_AWS_ACCESS_KEY_ID',
'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY',
));
Update
I have now tested two different methods but it is not working. My keys are of course correct.
Using the AWS credentials file and credential profiles
Created a new file in ~/.aws/credentials/credentials.ini
with the following code:
[default]
aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY
But I'm not sure where in the project I should Instantiate a client. I have tested to put the following code in config.php and in my controller but it's not working.
use Aws\S3\S3Client;
$s3Client = S3Client::factory(array(
'profile' => 'default',
'region' => 'us-west-1',
));
Using a configuration file with the service builder
I put this code in config.php
return array(
// Bootstrap the configuration file with AWS specific features
'includes' => array('_aws'),
'services' => array(
// All AWS clients extend from 'default_settings'. Here we are
// overriding 'default_settings' with our default credentials and
// providing a default region setting.
'default_settings' => array(
'params' => array(
array(
'credentials' => array(
'key' => 'YOUR_AWS_ACCESS_KEY_ID',
'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY',
)
),
'region' => 'us-west-1'
)
)
)
);
And in my controller where I what to access aws I write this in the top of the file.
use Aws\S3\S3Client;
$s3Client = S3Client::factory('APP . '/config/config.php');
$client = $s3Client->get('s3');
But I get the error message
Fatal error: Uncaught exception 'Aws\Common\Exception\InvalidArgumentException' with message 'The config must be provided as an array or Collection.'