AWS CLI со списком всех файлов в S3 Bucket - PullRequest
0 голосов
/ 07 января 2020

Я практикую AWS команд. Мой клиент дал мне ключ доступа AWS IAM и секрет, но не учетную запись, которую я могу войти в админ-панель. Эти ключи используются с самим проектом. То, что я пытаюсь сделать, это то, что я пытаюсь перечислить все файлы, рекурсивные в пределах корзины S3.

Это то, что я сделал до сих пор.

Я настроил AWS профиль для CLI с помощью следующей команды

aws configure

Затем я могу перечислить все доступные сегменты, выполнив следующую команду

 aws s3 ls

Затем я пытаюсь перечислить все файлы в ведро. Я попытался выполнить следующую команду:

 aws s3 ls s3://my-bucket-name

Но похоже, что она не дает мне правильное содержание. Кроме того, мне также нужен способ навигации по ковшу. Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 07 января 2020

Вы хотите перечислить все объекты рекурсивно, но не используете флаг --recursive. Это покажет только префиксы и любые объекты на уровне root

Соответствующие документы https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html

0 голосов
/ 07 января 2020

Несколько вариантов.

Сверните свои

, если вы запустили aws s3 ls, а в позиции есть слово "PRE" вместо даты и размера изменения, это означает, что «каталог», который вы можете пройти. Вы можете написать быстрый bash сценарий для запуска рекурсивных команд aws s3 ls для всего, что возвращает «PRE», указывающее, что он скрывает больше файлов.

s3fs

Использование проекта S3FS-Fuse на github , вы можете смонтировать S3 bucket в вашей файловой системе и исследовать его таким образом. Я не проверял это и поэтому не могу лично рекомендовать его, но это кажется жизнеспособным и может быть простым способом использовать инструменты, которые вы уже имеете и понимаете (например, tree).

Одна проблема, которая Я мог бы сказать, что когда я использовал программное обеспечение, подобное этому, оно выполняло много вызовов API, и если его оставить монтированным на длительный срок, оно может увеличить расходы только на количество вызовов API.

Syn c все на локальный хост (не рекомендуется)

Добавление этого для завершения, но вы можете запустить

aws s3 sync s3://mybucket/ ./

Это попытается скопировать все на ваш компьютер, и вы сможете использовать свою собственную файловую систему. Однако , s3-контейнеры могут содержать петабайты данных, поэтому вы не сможете синхронизировать c все это с вашей системой. Также , s3 предоставляет множество строгих мер безопасности для защиты данных, чего, вероятно, нет на вашем персональном компьютере.

...