#amazon-web-services #amazon-s3 #file-watcher
Вопрос:
Я хочу создать скрипт наблюдения за файлами, который определяет, были ли обновлены файлы в папке S3 или нет. Если да, то он должен выполнить определенную команду в Unix. Пожалуйста, помогите мне с этим.
Комментарии:
1. Что вы пробовали до сих пор? Где ты застрял?
2. Я понятия не имею, как я могу сделать такой сценарий
Ответ №1:
Что вам нужно сделать, так это создать прослушиватель (лямбда-функцию), который будет «прослушивать» изменения в корзине. С доступными мероприятиями можно ознакомиться здесь.
Таким образом, ваш код будет уведомляться о каждом изменении, о котором вы просили уведомить.
Смотрите здесь, как настроить корзину для запуска событий.
Обратите внимание, что в вашем Unix-боксе ничего не будет запускаться. Ваш код будет выполняться на AWS и будет выполнять вашу логику из AWS.
Комментарии:
1. Спасибо за ваш вклад. Но я хочу, чтобы сценарий в Unix делал все это.
2. Таким образом, вы можете сделать следующее: Настройте корзину для отправки событий в SQS. Напишите код python, который будет выполняться в поле unix, и прослушайте очередь SQS. В сообщении вы будете уведомлены об изменениях.
3. Есть ли какой-нибудь способ… Я могу сделать это полностью в Unix и не использую никакой дополнительной инфраструктуры AWS.
4. Нет. Как вы можете сказать, что происходит внутри корзины s3?
Ответ №2:
Я создаю скрипт на python, который использует boto3 для получения сведений об объекте. Затем я извлек метку времени из сведений об объекте, а затем сравниваю ее с предыдущей меткой времени или с моей текущей меткой времени. Таким образом, я могу узнать, изменены файлы или нет. Если файл изменен, я запускаю простую команду в ОС, которая запускает остальную часть кода python. Чтобы автоматизировать процесс, я создал задание cron
Комментарии:
1. Пожалуйста, добавьте дополнительные сведения, чтобы расширить свой ответ, например, ссылки на рабочий код или документацию.