2015-10-13 12 views
5

Mam funkcję Lambda, która tworzy miniaturę każdego obrazu, który zostanie przesłany do mojego zasobnika, a następnie umieszcza miniaturę w innym wiadrze. Kiedy przesłać użytkownik obrazu (profil pic) Używam użytkowników ID i nazwa jako część klucza:Używanie symbolu wieloznacznego w prefiksie powiadomień o zdarzeniu S3

System-images/users/250/john_doe.jpg

Czy istnieje sposób, aby użyć symbolu wieloznacznego w ścieżce prefix? To, co mam tak daleko, ale to nie działa

S3 bucket properties

+0

Astonishing to nadal nie jest obsługiwany. – duhseekoh

Odpowiedz

6

Nie, nie możesz - to dosłowne prefiks.

W przykładzie, można użyć jednej z tych przedrostków, w zależności od tego, co jeszcze jest w wiaderku (jeśli istnieją rzeczy dzielą wspólny prefiks, że nie chcesz, aby dopasować):

System-images/ 
System-images/users/ 
+0

Masz rację, zamiast tego użyłem sufiksu i tworzę wiele powiadomień o zdarzeniach dla 'jpg',' png' i 'jpeg'. Funkcja lambda uruchomi tylko te typy plików. –

0

Symbole wieloznaczne w filtrach prefiksów/sufiksów Lambdy nadal nie są obsługiwane, w międzyczasie można częściowo filtrować za ich pomocą, a następnie uzupełnić filtr, dodając wyrażenie regularne do funkcji Lambda.

Zdobądź klucz źródło:

var srcKey = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, " ")); 

sprawdzić, czy jest wewnątrz folderu użytkownicy:

if (srcKey.indexOf('/users/') === -1) { 
    callback('Not inside users folder!'); 
    return; 
} 
+0

Mój przypadek użycia dla symboli wieloznacznych wynika z tego, że nasza struktura folderów to '1//users/name/ .json'. Kraje będą się rozszerzać w miarę upływu czasu, więc nie będę mógł wymienić wszystkich krajów, nie da się ich skalować. Obecnie używam twojego rozwiązania, ale powoduje to zbyt wiele niepotrzebnych wyzwalaczy dla lambda, ponieważ w folderze użytkowników i nazw istnieją inne pliki .json, których nie obchodzi. Myślenie o SNS, ale może być odrobinę overkill. – ChickenWing24

Powiązane problemy