为什么在使用 aws-sdk-php 上传文件时拒绝访问?

why Getting Acces Denied while uploading file using aws-sdk-php?

我在这里不知何故迷路了,我是 aws 的新手,所以我在我的项目中安装了 aws-sdk-php,我正在尝试测试上传;这是脚本的一段代码:

require '.vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;

// Instantiate an S3 client
$s3 = S3Client::factory(array(
    'credentials' => array(
        'key'    => 'key ... ',
        'secret' => 'secret key ... ',
    )
)); 
$file_name = $_FILES['file']['tmp_name'];
try {
    $s3->putObject(array(
        'Bucket' => 'bucket_name',
        'Key'    => $_FILES['file']['name'],
        'Body'   => fopen($file_name, 'r'),
        'ACL'    => 'public-read',
    ));
    echo " upload succed !!";
} catch (S3Exception $e) {
    echo "There was an error uploading the file.\n";
    echo $e->getMessage() . "\n";
}

此代码在本地测试中运行良好,但是当尝试在 s3 中的文件夹中的项目中测试相同的脚本时;我收到此错误:

There was an error uploading the file. Access Denied

有什么想法吗? 谢谢。

尝试创建实例:

$s3 = S3Client::factory(array(
        'key' => 'key',
        'secret' => 'secret',
        'region' => 'eu-west-1'
    ));

使用您所在的地区

问题是 public ip 的限制。 但是,脚本干净且正确。 谢谢。