Лучший способ получить все подкаталоги, содержащие файл в s3, используя python и boto - PullRequest
0 голосов
/ 05 марта 2020

Есть ли способ выполнить поиск по шаблону в корзине в s3? используя python и boto. Мне нужно скопировать все подкаталоги, которые содержат указанный файл c, каков наилучший подход?

1 Ответ

0 голосов
/ 06 марта 2020

Команда list_buckets_v2() не принимает подстановочные знаки.

Ближайшая опция - это возможность передавать Prefix и Delimiter, которая эффективно работает как просмотр определенного подкаталог.

Вам потребуется написать собственный лог c, чтобы определить, какие объекты (не каталоги) копировать. Если вы хотите sh скопировать целые подкаталоги, код должен будет l oop проходить через каждый объект в этом пути и копировать объект по отдельности.

Если вам необходимо "скопировать все подкаталоги, содержащие Для указания c file "вам необходимо:

  • Выполнить первый проход, перечислив все объекты
  • L oop через ключи объектов (имена файлов), ища желаемое имя файла в конце ключа (от последнего sla sh (/) и далее)
  • Если имя файла найдено, добавьте префикс (каждые до last sla sh) в список
  • Для каждого пути, который был добавлен в список, выполните еще один list_objects_v2(), передавая путь в качестве префикса, и вызовите команду copy_object() для каждого объекта

(Вы можете достичь вышеупомянутого только с помощью одного list_objects_v2() вызова, но вышеупомянутое логически проще. Ваш выбор.)

...