PERL Net:: Amazon:: S3 BucketAlreadyExists: запрошенное имя ковша недоступно
my $bucketname = "test";
my $bucket = $s3->add_bucket( { bucket => "$bucketname" } )
or die $s3->err . ": " . $s3->errstr;
Запуск этого кода дает мне эту ошибку.
BucketAlreadyExists: запрошенное имя ковша недоступно. bucket namespace используется всеми пользователями системы. Выберите другое имя и повторите попытку.
Ведро не существует. Я не уверен, что случилось.
Спасибо
Ответы
Ответ 1
Ведра S3 - это глобальное пространство имен, и поэтому очень возможно, что кто-то другой взял то же самое ведро, прежде чем вы сможете его получить. Также возможно, что из-за внутренних задержек репликации или других таких проблем ранее удаленный ведро еще не доступен для повторного использования.
В этом конкретном случае "test"
- это ОЧЕНЬ общее имя ковша. Я уверен, что все и их собака пытаются его использовать - и когда я пытаюсь использовать LISTing, я получаю ошибку AllAccessDisabled
. Похоже, команда S3 отключила ведро "test"
, потому что слишком много людей пытаются использовать его в качестве имени своего ведра.
Итак, словом, вам нужно выбрать уникальное имя ведра - тот, который использует NOBODY.
Ответ 2
В разных учетных записях AWS не могут быть одинаковые имена.
Кто-то еще должен был создать "тест" уже.
Ответ 3
У вас будет эта ошибка, если имя bucket уже существует (для вас или для кого-то другого) или если вы попытались создать больше ведер, чем разрешено (максимум 100)
Подробнее см. в документации:
http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html