Я использую php mini framework https://github.com/panique/mini
Сейчас у меня есть следующий метод индекса в моем контроллере. Но похоже, что лучше иметь его в файле config/config.php. Как это сделать, чтобы я мог использовать его в моем контроллере/модели?
// Instantiate the S3 client with your AWS credentials
$client = S3Client::factory(array(
'key' => 'YOUR_AWS_ACCESS_KEY_ID',
'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY',
));
Обновить
Я проверил два разных метода, но он не работает. Мои ключи, конечно, правильные.
Использование файлов учетных данных AWS и учетных данных
Создал новый файл в ~/.aws/credentials/credentials.ini
со следующим кодом:
[default]
aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY
Но я не уверен, где в проекте я должен создать экземпляр клиента. Я протестировал, чтобы поместить следующий код в config.php и в мой контроллер, но он не работает.
use Aws\S3\S3Client;
$s3Client = S3Client::factory(array(
'profile' => 'default',
'region' => 'us-west-1',
));
Использование файла конфигурации с помощью сервис-строителя
Я поместил этот код в 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'
)
)
)
);
И в моем контроллере, где я, чтобы получить доступ к aws, я пишу это в верхней части файла.
use Aws\S3\S3Client;
$s3Client = S3Client::factory('APP . '/config/config.php');
$client = $s3Client->get('s3');
Но я получаю сообщение об ошибке
Неустранимая ошибка: исключить исключение "Aws\Common\Exception\InvalidArgumentException" с сообщением "Конфигурация должна быть предоставлена в виде массива или коллекции".
Попробовали ли вы, чтобы автозагрузчик композитора
require 'vendor/autoload.php'
Затем вы можете создать экземпляр своего клиента в любом месте вашего проекта
Прочтите раздел " Предоставление учетных данных" в разделе SDK руководства AWS SDK для PHP. Части 1, 2 и 3 на этой странице описывают методы настройки ваших учетных данных, не помещая их в код приложения или репо.
Using a configuration file with the service builder
Также в этом документе конкретно говорится о вашей озабоченности ». Однако будьте осторожны, чтобы не жестко закодировать ваши учетные данные в ваших приложениях. Кодирование ваших учетных данных может быть опасным, поскольку его легко случайно зафиксируйте ваши учетные данные в репозитории SCM, потенциально открывая ваши учетные данные большему количеству людей, чем предполагалось. Это также может затруднить поворот учетных данных в будущем ».