2015-09-04 12 views
5

Czy istnieje sposób, aby uzyskać powiadomienie, gdy przesyłanie jest zakończone w S3 Bucket? Wymagane jest, aby podać link do użytkowników po zakończeniu przesyłania filmu wideo do zasobnika. Domyślnie teraz udostępniam link po 30 minutach od rozpoczęcia wideo, czy wideo trwa 5 minut, czy też trwa 40 minut. Czy istnieje jakikolwiek sposób API, który dostarcza informacji o tym, że przesyłanie zostało zakończone?Uzyskaj powiadomienie po zakończeniu przesyłania w Amazon S3 wiadro

Odpowiedz

0

Nie ma bezpośredniej metody, która pozwala stwierdzić, czy załadowanie zostało zakończone, czy nie w wiadrze S3. Możesz zrobić prostą rzecz, którą śledziłem po wielu badaniach i działa poprawnie.

Postępuj zgodnie z i czytaj rozmiar pliku po każdych 30 sekundach zgodnie z wymaganiami, gdy rozmiar pliku nie zmienił się dla dwóch równoczesnych odczytów, po raz kolejny sprawdź rozmiar dla pewności, ponieważ może to być spowodowane przeciążeniem sieci, które rozmiar nie zmienił się dla dwóch równoczesnych odczytów.

0

Możesz użyć Amazon Lambda, aby wysłać wiadomość do Amazon SNS (lub powiadomić Cię w dowolny inny sposób), gdy plik zostanie przesłany do S3.

  1. Ustaw wyzwalacz S3 na funkcję Lambda. Zobacz ten samouczek: http://docs.aws.amazon.com/lambda/latest/dg/walkthrough-s3-events-adminuser.html

  2. Wewnątrz funkcji Lambda wyślij powiadomienie. Można użyć SNS, SES, SQS itp

+0

Potrafię wykryć, że nowy plik jest przesyłany, ale chcę otrzymać powiadomienie, gdy przesyłanie się zakończy i nie zostanie rozpoczęte. –

+0

Czy powiadomienie S3 nie może przejść bezpośrednio do SNS bez konieczności przechodzenia przez Lambda? –

+0

@asusgates Lambda zostanie wyzwolony po zakończeniu przesyłania pliku. –

6

Powiadomienia mogą być wywołane w Amazon S3, gdy którykolwiek z poniższych warunków:

  • s3:ObjectCreated:*
  • s3:ObjectCreated:Put
  • s3:ObjectCreated:Post
  • s3:ObjectCreated:Copy
  • s3:ObjectCreated:CompleteMultipartUpload
  • s3:ObjectRemoved:*
  • s3:ObjectRemoved:Delete
  • s3:ObjectRemoved:DeleteMarkerCreated
  • s3:ReducedRedundancyLostObject

Powiadomienia mogą być wysyłane za pośrednictwem trzech miejsc przeznaczenia:

  • Amazon Simple Service Notification (SNS), co z kolei może wysyłać powiadomienia pocztą e-mail, HT TP/S końcowym, SMS, powiadomienia Push mobile
  • Amazon Proste kolejkowania pokoi (SQS)
  • Amazon Lambda (obecnie dostępne we wszystkich regionach)

Patrz: Configuring Amazon S3 Event Notifications

Najbardziej odpowiedni wybór zależy od preferencji programowych i sposobu pisania aplikacji:

  • Zastosowanie SNS pchnąć do punktu końcowego HTTP do uruchomienia kodu w aplikacji
  • napisać kod, aby okresowo sprawdzać kolejkę SQS
  • Napisz funkcję lambda node.js lub Java

Po wyzwalane Twój kod będzie wtedy musiał zidentyfikować, kto przesłał film wideo, pobrać jego dane użytkownika, a następnie wysłać e-mail z powiadomieniem.Byłoby to najłatwiejsze, jeśli kontrolujesz klucz (nazwę pliku) przesyłanego obiektu, ponieważ pomoże to w określeniu użytkownika do powiadomienia.

Powiązane problemy