Уведомление о новых объектах S3 - PullRequest
27 голосов
/ 02 ноября 2011

У меня есть сценарий, когда у нас много клиентов, загружающих на s3.

  • Как лучше всего знать, что существует новый файл?
  • Это реалистичная / хорошая идея, чтобы я опрашивал ведро каждые несколько секунд?

Ответы [ 3 ]

28 голосов
/ 04 ноября 2011

UPDATE:

С ноября 2014 года S3 поддерживает следующие уведомления о событиях:

  • s3:ObjectCreated:Put - Объект был создан с помощью операции HTTP PUT.
  • s3:ObjectCreated:Post - Объект был создан с помощью операции HTTP POST.
  • s3:ObjectCreated:Copy - Объекту была создана операция копирования S3.
  • s3:ObjectCreated:CompleteMultipartUpload - Объект был создан после завершения многоэтапной загрузки S3.
  • s3:ObjectCreated:* - Объект был создан одним из перечисленных выше типов событий или аналогичным событием создания объекта, добавленным в будущем.
  • s3:ReducedRedundancyObjectLost - объект S3, сохраненный с уменьшенной избыточностью, был потерян.

Эти уведомления могут быть отправлены на Amazon SNS , SQS или Lambda . Посмотрите сообщение в блоге, на которое есть ссылка Ответ Алана для получения дополнительной информации об этих новых уведомлениях.

Оригинальный ответ:

Несмотря на то, что в Amazon S3 имеется система уведомлений корзины, она не поддерживает уведомления ни для чего, кроме события s3: ReducedRedundancyLostObject (см. Раздел GET Bucket уведомлений в их API).

В настоящее время единственный способ проверить наличие новых объектов - это опросить корзину через заданный интервал времени или создать собственную логику уведомлений в клиентах загрузки (возможно, на основе Amazon SNS).

12 голосов
/ 18 ноября 2014

Push-уведомления теперь встроены в S3:

http://aws.amazon.com/blogs/aws/s3-event-notification/

Вы можете отправлять уведомления в SQS или SNS, когда объект создается с помощью PUT или POST или после завершения загрузки нескольких частей.

2 голосов
/ 12 октября 2015

В настоящее время лучшим вариантом является использование сервиса AWS Lambda. Вы можете написать лямбду, используя node.js javascript, java или Python (возможно, со временем будет добавлено больше опций). Лямбда-сервис позволяет вам писать функции, которые отвечают на события из S3, такие как выгрузка файлов. Экономически эффективный, масштабируемый и простой в использовании.

...