2013-06-17 33 views
13

Wiem, że w chmurze zapewnia mechanizm do unieważnienia pliku, ale co zrobić, jeśli chcę unieważnić wszystkie pliki w określonym folderze? Dokumentacja wspomina, że ​​nie mogę używać w tym celu symboli wieloznacznych.Unieważnij wszystkie pliki w folderze w konsoli w chmurze

Oto wskazówki zaczerpnięte z oficjalnej dokumentacji:

Musisz wyraźnie unieważnić każdy przedmiot i za każdym katalogu, który chcesz CloudFront zatrzymać podaniem. Nie można używać symboli wieloznacznych do unieważniania grup obiektów i nie można unieważnić wszystkich obiektów w katalogu, określając ścieżkę katalogu.

Odpowiedz

15

Powrót w 2013 roku, w poprzedniej wersji tej odpowiedzi, napisałem: „foldery”

Nie można tego zrobić, ponieważ „Files” w CloudFront nie są w Wszystko jest przedmiotem, a każdy obiekt jest niezależny.

W tamtym czasie było to całkowicie prawdziwe. Wciąż jest prawdą, że wszystko jest obiektem i każdy obiekt jest niezależny, ale CloudFront zmienił swoją logikę unieważniania. Czytaj dalej.

W tym czasie był to również prawdą, i znowu, do pewnego stopnia, to nadal jest:

dokumentacja

CloudFront wspomina „utraty ważności katalogów”, ale odnosi się do stron internetowych, które rzeczywiście pozwala na zapewnienie katalog z listą [gdy] lista z listą jest tym, co chcesz unieważnić, więc to też ci nie pomoże.

Jednak czasy znacznie się zmieniły.

Technicznie, każdy obiekt jest nadal niezależny, a CloudFront tak naprawdę nie przechowuje ich w folderach hierarchicznych, ale interfejs unieważniający został ulepszony, aby obsługiwać zakotwiczone w lewo dopasowanie wieloznaczne. Możesz unieważnić zawartość "folderu" lub dowolnej liczby obiektów, które można dopasować za pomocą symbolu wieloznacznego na końcu ciągu. Wszystko, co pasuje zostanie eksmitowany z pamięci podręcznej:

Aby unieważnić obiektów można określić, albo ścieżkę dla poszczególnych obiektów lub ścieżkę, która kończy się * maska, co może mieć zastosowanie do jednego obiektu lub wielu, jak przedstawiono w następujących przykładach:

/images/image1.jpg

/images/image*

/images/*

—   http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html

Nicea akcesorium. Ale czy jest jakiś haczyk?

Oprócz tego, że unieważnienie wymaga - jak zwykle - od 10 do 15 minut do zakończenia w normalnych warunkach, odpowiedź brzmi: nie, naprawdę nie ma haczyka. Pierwsze 1000 ścieżek unieważnienia (wcześniej "żądania" i "żądanie" dotyczyło pojedynczego obiektu), które przesyłasz w ciągu miesiąca są bezpłatne; potem jest opłata, ale:

Cena jest taka sama bez względu na to, czy unieważniasz pojedyncze obiekty, czy też używasz wieloznacznika * do unieważnienia wielu obiektów.

—   http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#PayingForInvalidation

Należy pamiętać, że jeśli nie zawierają * na końcu, wówczas unieważnienie dla /images/ (na przykład) będzie tylko powiedzieć CloudFront unieważnić niezależnie pojedynczy obiekt swój Początek zwraca serwer dla żądań dla /images/.

Prowadnica ukośna jest dokumentowana jako opcjonalna.

6

Dopóki chcesz unieważnić odpowiednią ilość obiektów, jeden z łatwiejszych sposobów znalazłem jest, aby wybrać obiekty w Cyberduck, kliknij prawym przyciskiem > wybrać Info i kliknij na zakładkę Distribution i można unieważnić stamtąd . Cyberduck prześle jedną prośbę o unieważnienie do Twojego Cloudfront z listą wybranych plików.

Cyberduck jest również open source.

enter image description here

ps: nie związany z produktem w jakikolwiek sposób. Wystarczy wymienić alternatywę.

+0

Jest to świetny sposób, aby to zrobić, ale tylko jeśli założyć dystrybucję CloudFront przez samego Cyberduck. Cyberduck nie jest w stanie rozpoznać istniejącej już dystrybucji Cloudfront. – Scottie

+2

@Scottie - Skonfigurowałem wszystkie moje Cloudfront za pośrednictwem internetowej konsoli amazon .. Mój cyberduck nie rozpoznaje adresów URL CDN (a więc daje mi puste adresy URL itp.), Ale nadal pozwala mi unieważnić pliki. – iamserious

+0

Huh! Będę musiał wtedy przyjrzeć się temu bliżej. Dzięki! – Scottie

6

Od 2015-05-25 można unieważnić za pomocą symbolu wieloznacznego. Ex: /* lub /images/*

Jest także znacznie mniej kosztowne zrobić to w ten sposób, jak coś podobnego /images/* liczy jako jeden obiekt o unieważnienie, zamiast obciążony tysiącami zdjęć w katalogu/images.

http://aws.amazon.com/about-aws/whats-new/2015/05/amazon-cloudfront-makes-it-easier-to-invalidate-multiple-objects/

+0

Wreszcie! To dobra wiadomość. – iamserious

+0

Tak, oczywiście. Co ciekawe, moja uwaga została zwrócona na to pytanie, ponieważ wczoraj dostałem awans na moją nieaktualną odpowiedź z dwóch poprzednich lat - co bardzo doceniam - ale moja odpowiedź została teraz zmieniona, aby odzwierciedlić obecny stan rzeczy. –

Powiązane problemy