Mam scenariusz, w którym mamy wielu klientów przesyłających do s3.Powiadomienie o nowych obiektach S3
- Jakie jest najlepsze podejście do poznania, że istnieje nowy plik?
- Czy to realistyczny/dobry pomysł, abym sondował wiadro przez kilka sekund?
Mam scenariusz, w którym mamy wielu klientów przesyłających do s3.Powiadomienie o nowych obiektach S3
UPDATE:
Od listopada 2014 roku, S3 obsługuje następujące powiadomień o zdarzeniach:
s3:ObjectCreated:Put
- Obiekt został stworzony przez operację HTTP PUT.s3:ObjectCreated:Post
- Obiekt został utworzony przez operację HTTP POST.s3:ObjectCreated:Copy
- Obiekt został utworzony w operacji kopiowania S3.s3:ObjectCreated:CompleteMultipartUpload
- Obiekt został utworzony przez ukończenie wieloczęściowego przesyłania S3.s3:ObjectCreated:*
- Obiekt został utworzony przez jeden z typów zdarzeń wymienionych powyżej lub przez podobne zdarzenie tworzenia obiektu dodane w przyszłości.s3:ReducedRedundancyObjectLost
- Obiekt S3 zmagazynowany z redukcją nadmiarowości został utracony.Te powiadomienia mogą być wydawane Amazon SNS, SQS lub . Więcej informacji na temat tych nowych powiadomień znajdziesz w poście na blogu, który jest połączony w Alan's answer.
Original Odpowiedź:
Choć Amazon S3 posiada system powiadomień kubełkowe w miejscu nie obsługuje powiadomienia o nic, ale s3: imprezy ReducedRedundancyLostObject (patrz GET powiadomienie łyżki rozdział w ich API).
Obecnie jedynym sposobem sprawdzenia, czy są nowe obiekty, jest odpytywanie wiadra w ustalonym odstępie czasu lub tworzenie własnej logiki powiadomień w klientach przesyłania (na przykład w oparciu o usługę Amazon SNS).
powiadomień push są teraz wbudowane w S3:
http://aws.amazon.com/blogs/aws/s3-event-notification/
można wysyłać powiadomienia do SQS lub SNS, gdy obiekt jest tworzony poprzez PUT lub POST lub wieloczęściowe zakończeniu przesyłania.
Twoja najlepsza opcja w dzisiejszych czasach korzysta z usługi AWS Lambda. Możesz napisać Lambda używając zarówno javascript, java, jak i Python (prawdopodobnie więcej opcji zostanie dodanych w czasie). Usługa lambda umożliwia pisanie funkcji odpowiadających na zdarzenia z S3, takie jak przesyłanie plików. Ekonomiczne, skalowalne i łatwe w użyciu.