Php AWS SDK无法识别凭据配置文件

Php AWS SDK无法识别凭据配置文件,php,laravel-5,configuration-files,aws-sdk,Php,Laravel 5,Configuration Files,Aws Sdk,使用AWS凭据文件时,我接收到密钥/机密的空对象 [credentials:protected] => Aws\Common\Credentials\Credentials Object ( [key:protected] => [secret:protected] => [token:protected] => [ttd:protected] => 1 ) 以及 [service] => sqs [base_url]

使用AWS凭据文件时,我接收到密钥/机密的空对象

[credentials:protected] => Aws\Common\Credentials\Credentials Object
(
    [key:protected] => 
    [secret:protected] => 
    [token:protected] => 
    [ttd:protected] => 1
)
以及

[service] => sqs
[base_url] => https://sqs.us-east-1.amazonaws.com
[key] => 
[secret] => 
[token] => 
[token.ttd] => 
[credentials.cache] => 
[credentials.cache.key] => 
[credentials.client] => 
[client.backoff] => Guzzle\Plugin\Backoff\BackoffPlugin Object
.........
我使用的代码非常直接

Class Foo
{
    private sqsClient = null;

    public function __construct()
    {
        $this->sqsClient = SqsClient::factory([
            'profile' => 'default',
            'region'  => 'us-east-1',
        ]);

        header('content-type: text/plain'); print_r($this->sqsClient); die;
    }
}

$sqs = New Foo();
凭据和配置文件都位于~/.aws/{config,credentials}

配置

[default]
output = json
region = us-east-1
证书

[default]
aws_access_key_id = XXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXX
为什么这些没有被正确读入?这是使用Laravel5.0。作曲家片段如下

"require": {
    "laravel/framework": "5.0.*",
    "laravel/installer": "~1.2",
    "aws/aws-sdk-php-laravel": "~2.0",
    "aws/aws-sdk-php": "2.8.*"
},

问题是由于~/.aws/凭证上的文件权限由root用户而非用户拥有

Laravel默认情况下加载aws凭证,因此我们可以像下面一样使用

    use Aws\Sqs\SqsClient;

    $sqsClient = new SqsClient([
        'region' => env('AWS_DEFAULT_REGION'),
        'version' => '2012-11-05'
    ]);