Копировать файлы во вложенные папки в корзине S3 - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь скопировать файл из одной папки в исходной корзине в другую папку в той же корзине в исходной папке, используя boto3.

Источник: тестирование

Путь к источнику: A / B / C / D / E / F ..

У меня есть несколько файлов в C, которые мне нужно переместитьна E.

Моя проблема в том, что лямбда работает в цикле для этого.У меня есть эта лямбда, которая срабатывает, когда мой файл попадает в C, а затем вызывает другой, чтобы сделать что-то еще.Теперь между этими двумя я должен переместить файл с C на E и затем запустить лямбду для выполнения следующей операции.

Кто-нибудь знает, как я могу исправить эту проблему лямбда, работающего в цикле?

1 Ответ

0 голосов
/ 13 октября 2018

В S3 нет папки.Вы бы лучше увидели это как значение ключа ведра. Папкоподобное представление, которое вы видите в консоли, является просто визуализацией.

Ваша лямбда запускается событием изменения файла в вашей корзине.Вам нужно поиграть с префиксом и суффиксом события S3.

Контролируете ли вы имя файла, который вы вставили в S3?

  • Да.Предположим, ваше имя файла всегда начинается с new.Установите ваше событие с префиксом : A/B/C/new.Когда файл попадает в A/B/C/new..., лямбда запускается, потому что он совпадает с префиксом, когда те же файлы переходят в A/B/C/D/E/new..., лямбда не запускается, потому что префикс не совпадает.

  • Нет.Затем измените иерархию папок.Установите ваше событие с префиксом : A/B/C/.Переместите файл на любую клавишу (например, «папка»), которая не начинается с A/B/C, например A/B/E.Таким образом, второй ключ не будет соответствовать префиксу.

Суффикс не поможет, если вы не можете переименовать суффикс файла.Если вы можете переименовать файл, вы создаете событие с суффиксом : .abc, а при перемещении файла вы переименовываете его во что-то, заканчивающееся .xyz.Таким образом, только файлы .abc будут запускать лямбду, где бы они ни находились.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...