我使用的是php迷你框架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",消息为"config必须作为数组或集合提供。'
请阅读AWS SDK for PHP用户指南的"为SDK提供凭据"部分。该页的第1、2和3部分介绍了在不将凭据放入应用程序代码或repo的情况下设置凭据的技术。
您是否尝试过要求composer自动加载器
require 'vendor/autoload.php'
然后,您可以在项目的任何位置实例化您的客户端