2015-10-06 3 views
0

Мне нужно рекурсивно загрузить дерево каталогов в ведро, с предостережением о том, что вы не загружаете ни один из самих файлов (они большие). Это то, что у меня есть до сих пор:Как загрузить структуру каталогов S3 (без файлов)?

s3cmd --dry-run --recursive --no-delete-removed --verbose --rinclude='^[^.]*$' 
    --rexclude='[^.]*$' sync s3://bucket_name/folder/ ~/Downloads/local_folder/ 

, который правильно пропускает файлы, но не загружает папки.

Вот некоторые вопросы, которые я нашел

+0

Как указано в ответе на другой вопрос, который вы указали, нет загружаемых папок. Папки в S3 в значительной степени являются иллюзией, побочным эффектом '/' разделителей в именах ключей ... s3cmd может не иметь простого способа загрузки вещей, которые на самом деле не существуют. Прямой вызов API для интерфейса REST для ListObjects позволяет вам получать «общие префиксы» - «папки», но не знает ли s3cmd это полезным способом, fwiw. –

ответ

2

Amazon S3 не имеет папки. Ближайшая концепция - это CommonPrefix, которая позволяет перечислять файлы «внутри» каталога.

Чтобы получить эти общие префиксы и создать структуру каталогов, вам придется написать свою собственную программу (например, в Python с использованием boto).

Кстати, в эти дни лучше использовать AWS Command-Line Interface (CLI), а не s3cmd, так как он может работать с все AWS услуг, а не только Amazon S3.

Смежные вопросы