2011-11-02 10 views
26

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?

Odpowiedz

25

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).

0

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.

Powiązane problemy