Как я могу создать ведро внутри ведра с помощью aws cli? Когда я использую команду «mb», она говорит, что она у меня уже есть (но у меня нет). Сегмент верхнего уровня example-bucket уже существует. Мне нужно знать, как создать "тестовую" корзину с помощью cli.
[ec2-user@ip-10-0-0-0 ~]$ aws s3 mb s3://example-bucket/testing --region us-west-2
make_bucket failed: s3://example-bucket/testing An error occurred (BucketAlreadyOwnedByYou) when calling the CreateBucket operation: Your previous request to create the named bucket succeeded and you already own it.
Это невозможно. Как документация состояния:
Вы не можете создать ведро в другом ведре.
Ковши - это контейнер самого высокого уровня в AWS S3. Вы не можете поместить ведро внутри ведра - это не имеет смысла, учитывая принцип работы службы.
S3 - это хранилище объектов, а не файловая система, и у него нет папок как таковых. Вы можете создавать объекты с разделителем пути, когда вы просматриваете сегмент в веб-консоли, он показывает его в виде папки / дерева. Вам не нужно заранее создавать «папку», просто поместите объект с правильным ключом. Есть хорошее руководство по Папки S3 здесь.
Подобная команда интерфейса командной строки AWS помещает объект в S3, который выглядит как папка. Вызов API будет аналогичным
aws s3 cp filename.txt s3://bucketname/folder/filename.txt
Документация по AWS S3 неплохая. Команда AWS S3 CLI cp: задокументировано здесь.
Очевидно, вы не можете использовать "aws s3 mb". Мне пришлось использовать "aws s3api put-object"
aws s3api put-object --bucket example-bucket --key testing/
Косая черта необходима, чтобы aws знала, что это каталог, в противном случае он создаст пустой файл.