AWS v3 + PHP:从实例配置文件元数据服务器检索凭证时出错

AWS v3 + PHP: Error retrieving credentials from the instance profile metadata server

早上好,

我正在与 AWS 合作,以利用存储服务。 我基于版本 3,你可以在这里找到它: https://docs.aws.amazon.com/it_it/sdk-for-php/v3/developer-guide/getting-started_installation.html 使用 ZIP 文件安装!

我发现这个错误:

Uncaught exception 'Aws\Exception\CredentialsException' with message 'Error retrieving credentials from the instance profile metadata server. (cURL error 7: Failed connect to 169.254.169.254:80; No route to host (see http://curl.haxx.se/libcurl/c/libcurl-errors.html))' 

我的代码:

use Aws\S3\S3Client;
require_once 'aws-autoloader.php';
require_once 'config.php';

$config = array(
        'bucket' => BUCKET,
        'region'  => 'eu-west-3',
        'version' => 'latest',
        'credentials  ' => array('key'=>KEY,
                'secret'=>SECRET)
      );

$s3 = Aws\S3\S3Client::factory($config);
$objects = $s3->getIterator('ListObjects', ['Bucket' => $config['bucket'], 'Prefix' => 'challenge/']
);

我正在创建独立于 cms 或框架的功能。

有人知道怎么解决吗?

认为数组中的 'credentials' 键中有一些空格。

'credentials ' => array('key'=>KEY, 'secret'=>SECRET)

应该是

'credentials' => array('key'=>KEY, 'secret'=>SECRET)

编辑:尝试更新您的凭据以使用 Aws 的凭据对象

$credentials = new Aws\Credentials\Credentials(AWS_ACCESS_KEY_ID ,AWS_SECRET_ACCESS_KEY);
$config = array(
    'bucket' => BUCKET,
    'region'  => 'eu-west-3',
    'version' => 'latest',
    'credentials  ' => $credentials
  );