laravel与亚马逊aws错误连接

时间:2019-05-21 08:47:31

标签: laravel amazon-web-services amazon

我与这样的亚马逊aws建立连接

    $s3 =  AwsFacade::createClient('s3');
    $s3->getObject(array(
            'Bucket' => 'NameBuckut',
            'secret'    => 'SecretKey',
            'Key'    => 'Key',
            'SourceFile' => 'pathImage/Image.png',
        )); 

我有此错误:

exception 'Aws\S3\Exception\S3Exception' with message 'Error executing "GetObject" on "https://test.s3.amazonaws.com/Key"; AWS HTTP error: Client error: `GET https://test.s3.amazonaws.com/key` resulted in a `400 Bad Request` response:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AuthorizationHeaderMalformed</Code><Message>The authorization header (truncated...)

我该如何解决此错误?

1 个答案:

答案 0 :(得分:0)

我认为您没有足够的权限来获取对象。

https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html

您可以在此处看到一些含义,当您搜索返回的“ AuthorizationHeaderMalformed”时,您将获得以下含义

The authorization header you provided is invalid.

因此,您应该检查您的权限是否正确以及您是否具有足够的权限来获取文件。还要检查“桶策略”。

Laravel支持S3,因此您可以对其进行配置并在存储上使用它,也许效果更好。

https://laravel.com/docs/5.8/filesystem