У меня есть доступ к ведерке S3. Я не владею ведром. Мне нужно проверить, были ли добавлены новые файлы в ведро, чтобы отслеживать его.Как контролировать ведро AWS S3 с помощью python с помощью boto?
Я видел, что ведра могут запускать события и что можно использовать Лямбду Amazon для наблюдения и реагирования на эти события. Однако я не могу изменить настройки ведра, чтобы это разрешить.
Моей первой идеей было просеять все файлы и получить последнюю версию. Однако в этом ковше много файлов, и этот подход оказался крайне неэффективным.
Конкретные вопросы:
- Есть ли способ, чтобы эффективно получить самый новый файл в ведре?
- Есть ли способ отслеживать загрузку в ведро с помощью boto?
Менее конкретный вопрос:
- Как бы вы подойти к этой проблеме? Скажем, вам нужно было получить самый новый файл в ведре и напечатать его имя, как бы вы это сделали?
Спасибо!
Здравствуйте. Спасибо за ответ! Я сделал что-то похожее на ваше предложение/мою первоначальную идею. В цикле while я получаю список элементов, сортирую их по дате и извлекаю первый. Я также сохраняю последний новый файл. Если текущий новейший файл отличается от последнего новейшего файла, это новый файл, поэтому я делаю что-то с ним. Тем не менее, я не думаю, что этот подход является элегантным вообще, он занимает около половины минуты, чтобы заказать все предметы в ковше. Итерация только один раз, чтобы найти новейшую, также не является чем-то вроде улучшения. – RandomGuyqwert
Да, есть лучшие способы сделать это (Lambda, SQS, SNS или даже хранить информацию в таблице DynamoDB), но все они требуют разрешения для самого ведра. Имея только разрешения на чтение, есть только ограниченные возможности. –