2

我在使用新的适用于 AWS 的 PHP 开发工具包时遇到了一个相当令人困惑的问题。我使用 Composer 安装了适用于 PHP 的 AWS 开发工具包,并且正在使用最新的稳定版本。不幸的是,似乎 S3 方法直接映射到 Guzzle\Http\Message\Request 类,我完全不知道为什么!任何人都可以帮忙吗?

require "vendor/autoload.php";
use Aws\Common\Aws;
use Aws\S3\S3Client;

$aws = S3Client::factory(
    array(
        "key"       => "exampleKeyMeep381717",
        "secret"    => "exampleSecretMeep291581",
        "region"    => "us-east-1"
    )
);

$s3 = $aws->get("s3");

$result = $s3->createBucket(array("Bucket" => "bmucket92hta"));

这是打印到屏幕上的错误:

Fatal error: Call to undefined method Guzzle\Http\Message\Request::createBucket()
4

1 回答 1

2

我明白发生了什么。你有

$aws = S3Client::factory(

它创建了一个 S3 客户端的实例。然后你有

$s3 = $aws->get("s3");

其中(因为 SDK 客户端继承自 Guzzle HTTP 客户端)创建了一个 Request 对象。


我认为你的意思是

$aws = Aws::factory(

它创建了一个 AWS 服务构建器的实例。然后做

$s3 = $aws->get("s3");

就像您现在所做的一样,除了使用正确的对象之外,获取 S3 客户端实例。

这是您从某个地方获得的代码示例吗?

于 2013-07-22T18:03:40.000 回答