【问题标题】:AWS AccessDeniedException with Laravel for S3适用于 S3 的 Laravel 的 AWS AccessDeniedException
【发布时间】:2015-03-05 07:37:44
【问题描述】:

当我尝试使用 Laravel 将对象放入 S3 存储桶时,我从 AWS PHP 开发工具包中获得了 AccessDeniedException。我已经在application/config/packages/aws/aws-sdk-php-laravel/config.php 中配置了密钥、秘密和区域。然后我尝试使用以下代码执行一个简单的 putObject:

try {
    AWS::get('s3')->putObject(array(
        'Bucket' => Config::get('settings.AWS_BUCKET'),
        'Key'    => 'hello_.txt',
        'Body'   => 'hi',
        'ACL'    => 'public-read'
    ));

    return 'great success';
} catch (Exception $e) {
    return $e;
}

正如您从我提出这个问题开始所期望的那样,失败并返回类似这样的内容(每次请求 ID 都在变化):

Aws\S3\Exception\AccessDeniedException: AWS Error Code: AccessDenied, Status Code: 403, AWS Request ID: CA0E8181A5F2D740, AWS Error Type: client, AWS Error Message: Access Denied, User-Agent: aws-sdk-php2/2.7.20 Guzzle/3.9.2 curl/7.40.0 PHP/5.4.37 Laravel/4.2.17 L4MOD/1.1.0

据我所知,我只是被拒绝访问存储桶。如果我更改密钥或秘密,我将分别得到 InvalidAccessKeyIdExceptionSignatureDoesNotMatchException。我在这里错过了什么?

【问题讨论】:

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


    【解决方案1】:

    我终于发现,如果我在 IAM 下的用户权限下添加 AmazonS3FullAccess 策略,应用程序终于可以工作,我能够创建项目并将其上传到存储桶。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 2016-10-10
      • 2020-03-24
      相关资源
      最近更新 更多