2011-10-20 12 views
18
my $bucketname = "test"; 
my $bucket = $s3->add_bucket({ bucket => "$bucketname" }) 
    or die $s3->err . ": " . $s3->errstr; 

このコードを実行すると、このエラーが発生します。PERL Net :: Amazon :: S3 BucketAlreadyExists:要求されたバケット名が利用できません。

BucketAlreadyExists:要求されたバケット名は使用できません。 バケット名前空間は、システムのすべてのユーザーによって共有されます。別の名前の を選択してもう一度お試しください。

バケットは存在しません。私は何が間違っているのか分かりません。

おかげ

+1

本当によろしいですか?これは[AWSフォーラム](https://forums.aws.amazon.com/forum.jspa?forumID=24)でお聞きするのに良い質問かもしれません。 – ObscureRobot

答えて

27

S3バケットがグローバル名前空間であるので、それはあなたがそれを得ることができる前に他の誰かが同じバケツを取ったことは非常に可能です。内部レプリケーションの遅延などの問題により、以前に削除されたバケットはまだ再利用できません。

この特定のケースでは、"test"は非常に一般的なバケット名です。みんなとその犬が使っていると確信しています.LISTを試してみると、AllAccessDisabledというエラーが出ます。 S3チームが"test"バケットを無効にしたように見えるのは、あまりにも多くの人がそのバケット名として使用しようとしているからです。

したがって、要するにユニークバケット名(他に誰も使用していないもの)を選択する必要があります。

+0

ありがとう、私はこれらのバケット名がグローバルであることを理解していませんでした。 –

+6

は、これについてより明示的なエラーメッセージを表示したいと思っています。「システムのすべてのユーザーが共有しています」は、私のチームの全員を参照することもできます... – emmagras

+1

これはfooの私の非常にオリジナルのバケット名がどのように利用できないかを説明します。 –

1

異なるAWSアカウントで同じ名前のバケットを使用することはできません。 誰かが既に 'テスト'を作成しているに違いありません。

関連する問題