У меня есть senario, где у нас много клиентов, загружающих s3. Мой вопрос - это лучший подход к пониманию того, что есть новый файл. Является ли это реалистичной/хорошей идеей, для меня опросить ведро на несколько секунд?
Уведомление о новых объектах S3
Ответ 1
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. Отправляйте сообщение в блоге, которое связано с Alan answer для получения дополнительной информации об этих новых уведомлениях.
Исходный ответ:
Хотя Amazon S3 имеет систему уведомлений о ведрах, он не поддерживает уведомления ни о чем, кроме события s3: ReducedRedundancyLostObject (см. раздел уведомлений GET Bucket в своем API).
В настоящее время единственным способом проверки новых объектов является опрос ведра в заданный промежуток времени или создание собственной логики уведомлений в клиентах загрузки (возможно, на основе Amazon SNS).
Ответ 2
Push-уведомления теперь встроены в S3:
http://aws.amazon.com/blogs/aws/s3-event-notification/
Вы можете отправлять уведомления в SQS или SNS, когда объект создается через PUT или POST или завершена многочастная загрузка.
Ответ 3
Ваш лучший вариант в настоящее время - использование службы AWS Lambda. Вы можете написать Lambda, используя либо node.js javascript, java или Python (возможно, во время добавления будет добавлено больше опций). Лямбда-служба позволяет вам писать функции, которые реагируют на события с S3, такие как загрузка файлов. Экономичный, масштабируемый и простой в использовании.