我应该在哪里将AWS凭据集成到我的php框架中


Where should I integrate AWS credentials in my php framework?

我使用的是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'

然后,您可以在项目的任何位置实例化您的客户端