如何在 Amazon PHP SDK v3 中使用 v2 身份验证 header?

How do I use a v2 authentication header with Amazon PHP SDK v3?

这是我的代码:

$client = new S3Client([
    'credentials' => [
        'key' => 'xxx',
        'secret' => 'xxx',
    ],
    'version' => 'latest',
    'region'  => 'US',
    'endpoint' => 'https://storage.googleapis.com',
    'signature_version' => 'v2',
]);

我得到这个错误:

UnresolvedSignatureException in SignatureProvider.php line 61:

Unable to resolve a signature for v2/s3/US. Valid signature versions include v4 and anonymous.

文档说这是通过添加 'signature' => 'v2' 来支持的,但添加该参数似乎根本没有任何作用。

http://docs.aws.amazon.com/aws-sdk-php/guide/latest/configuration.html

这是使用 Laravel 5.1 和 Amazon SDK v3.0.3

很遗憾,你不能。 v2 签名正在逐步淘汰,目前仅在 small number of services 上受支持,S3 不是其中之一。由于 PHP SDK 是针对 AWS 产品构建的,因此对服务所做的身份验证更改会反映在 PHP 客户端中。