【问题标题】:PHP connect to aws. Connection refusedPHP 连接到 AWS。连接被拒绝
【发布时间】:2023-02-03 12:37:20
【问题描述】:

我无法使用亚马逊的官方 PHP SDK 连接到 AWS S3。 这段代码

<?php
....

$s3Client = new S3Client([
    'version' => 'latest',
    'region' => 'us-east-1',
    'credentials' => [
        'key' => 'key',
        'secret' => 'secret',
    ],
]);

// Use the S3 client to perform actions, such as listing buckets
$result = $s3Client->listBuckets();
foreach ($result['Buckets'] as $bucket) echo $bucket['Name'] . "\n";

我收到这个错误。

PHP Fatal error:  Uncaught exception 'Aws\S3\Exception\S3Exception' with message 'Error executing "ListBuckets" on "https://s3.amazonaws.com/"; AWS HTTP error: Connection refused for URI https://s3.amazonaws.com/'

GuzzleHttp\Exception\ConnectException: Connection refused for URI https://s3.amazonaws.com/ in C:\Users\bgaliev\PhpstormProjects\Cash2u.MigrationUtil\vendor\guzzlehttp\guzzle\src\Handler\StreamHandler.php:328
Stack trace:

我尝试使用 C# 做同样的事情,没有任何错误。 这是 C# 上的基本示例代码

using Amazon;
using Amazon.Runtime;
using Amazon.S3;
using Amazon.S3.Model;

var amazonS3Client = new AmazonS3Client(
    new BasicAWSCredentials("key", "secret"),
    new AmazonS3Config
    {
        RegionEndpoint = RegionEndpoint.USEast1
    }
);


var listBuckets = await amazonS3Client.ListBucketsAsync(new ListBucketsRequest());

foreach (var listBucketsBucket in listBuckets.Buckets)
{
    Console.WriteLine(listBucketsBucket.BucketName);
}

【问题讨论】:

    标签: php amazon-web-services amazon-s3


    【解决方案1】:

    根据我的经验,您需要先声明一个 AWS Credentials 类的对象

    因此,对于您的情况,请更改为:

    <?php
    ....
    
    $credentials = new AwsCredentialsCredentials('key', 'secret');
    
    $s3Client = new AwsS3S3Client([
        'version'     => 'latest',
        'region'      => 'us-east-1',
        'credentials' => $credentials
    ]);
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      • 2017-08-08
      • 2018-10-18
      • 2021-12-18
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      相关资源
      最近更新 更多