#perl #amazon-s3
#perl #amazon-s3
Вопрос:
my $bucketname = "test";
my $bucket = $s3->add_bucket( { bucket => "$bucketname" } )
or die $s3->err . ": " . $s3->errstr;
Запуск этого кода выдает эту ошибку.
BucketAlreadyExists: запрошенное имя корзины недоступно. Пространство имен корзины является общим для всех пользователей системы. Пожалуйста, выберите другое имя и повторите попытку.
Корзина не существует. Я не уверен, что не так.
Спасибо
Комментарии:
1. Вы уверены? Это может быть хорошим вопросом для обсуждения на форуме AWS .
Ответ №1:
Корзины S3 — это глобальное пространство имен, и поэтому очень возможно, что кто-то другой взял ту же корзину, прежде чем вы смогли ее получить. Также возможно, что из-за внутренних задержек репликации или других подобных проблем ранее удаленная корзина еще недоступна для повторного использования.
В данном конкретном случае "test"
это ОЧЕНЬ общее имя корзины. Я уверен, что все и их собака пытаются его использовать — и когда я пытаюсь перечислить его, я получаю AllAccessDisabled
сообщение об ошибке. Похоже "test"
, команда S3 специально отключила корзину, потому что слишком много людей пытаются использовать ее в качестве имени своей корзины.
Короче говоря, вам нужно выбрать уникальное имя корзины, которое БОЛЬШЕ НИКТО не использует.
Комментарии:
1. спасибо за это, я не понял, что эти имена корзин были глобальными.
2. хотелось бы, чтобы сообщение об ошибке было более явным по этому поводу… «общий для всех пользователей системы» также может относиться ко всем в моей команде…
3. это объясняет, почему мое оригинальное имя корзины foo недоступно.
Ответ №2:
Разные учетные записи AWS не могут иметь корзины с одинаковыми именами. Должно быть, кто-то другой уже создал ‘test’.
Ответ №3:
Вы получите эту ошибку, если имя корзины уже существует (для вас или для кого-то другого) или если вы попытались создать больше корзин, чем разрешено (максимум 100)
Подробнее см. Форму документации:
http://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html