Почему я не вижу содержимого корзины localhost s3?

#amazon-s3 #localstack

Вопрос:

Используя пакет localstack, у меня есть следующее:

 awslocal s3 mb s3://kiosks-images awslocal s3api put-bucket-acl --bucket kiosks-images --acl public-read awslocal s3 cp TopCroppedSpotlightLowExOnlyPGV.jpg s3://kiosks-images/dev/us/2020_08_11/eea9efc9-5970-426b-b867-9f57d6d9548f/55208151-6438-4bfc-b4be-43ed57798dc2  aws s3 ls s3://kiosks-images  PRE dev/  PRE prod/  PRE qa/  

как мне убедиться, что добавленный мной файл скопирован в правильное место в корзине?

Комментарии:

1. Как насчет того, что результат не такой, как вы ожидали?

2. как я могу подтвердить, что s3://киоски-изображения/dev/us/2020_08_11/eea9efc9-5970-426b-b867-9f57d6d9548f/55208151-6438-4bfc-b4be-43ed57798dc2 действительно добавлен? Я даже не вижу каталога dev/us

3. Либо используйте --recursive вызов ls для отображения всех объектов, либо перечислите полный URI S3, чтобы просмотреть этот файл в S3.

4. это ответ, отметьте его так, и я отмечу его как ответ, спасибо

Ответ №1:

По умолчанию, когда вы перечисляете объекты в корзине, S3 сворачивает все объекты с тем же префиксом перед разделителем, что и одна запись, и помечает эту коллекцию как PRE в выходных данных. Это позволяет обрабатывать содержимое корзин S3 как традиционную файловую систему с каталогами и файлами в этих каталогах.

Вы можете либо использовать aws s3 ls --recursive для перечисления всех объектов в корзине, либо запросить объект напрямую, выполнив что-то вроде aws s3 ls s3://bucket-name/path/to/object просмотра этого отдельного объекта, если он существует.