Amazon S3 基本操作不起作用


Amazon S3 basic action doesn't work

我正在尝试使用 Amazon S3 来存储我的图像。到目前为止,我所做的是通过PEAR安装AWS SDK(链接:http://docs.aws.amazon.com/aws-sdk-php-2/guide/latest/installation.html(

然后我进入第二步,创建一个客户端:

<?php
// Include the SDK using the Composer autoloader
require 'vendor/autoload.php';
use Aws'S3'S3Client;
// Instantiate the S3 client with your AWS credentials and desired AWS region
$client = S3Client::factory(array(
    'key'    => 'your-aws-access-key-id',
    'secret' => 'your-aws-secret-access-key',
));

我的键设置正确... .

然后我想通过创建一个这样的存储桶来测试所有这些:

$bucket = 'my-bucket';
try{
    $result = $client->createBucket(array(
        'Bucket' => $bucket
    ));
    // Wait until the bucket is created
    $client->waitUntil('BucketExists', array('Bucket' => $bucket));
}
catch(Exception $e){
    var_dump($e->getMessage());
}

但我总是收到此错误:

请求的存储桶名称不可用。存储桶命名空间由系统的所有用户共享。请选择其他名称,然后重试。

我认为我的 SDK 未正确安装...谁能帮我解决这个问题?我正在使用流浪者,所以我使用以下命令在我的根文件夹中安装了 AWS 开发工具包:

须藤梨 -D auto_discover=1 安装 pear.amazonwebservices.com/sdk

我收到消息说安装正常。

我也对我的$client做了var_dump。我的回复链接:http://pastebin.com/KqkEiKGs
现在不要,如果你是它的东西...(我的钥匙是隐藏的(

您的错误消息说明了这一点 - 您正在尝试使用对存储桶不唯一的名称,您应该使用一些更独特的名称。而且,是的,存储桶名称在所有 Amazon S3(不仅是您的账户(中必须是唯一的。

您可以在此处阅读有关它的更多信息。