To podejście można zastosować.
Można wymienić wszystkie obiekty w wiadrze z aws s3 ls $BUCKET --recursive
:
$ aws s3 ls $BUCKET --recursive
2015-05-05 15:36:17 4 an_object.txt
2015-06-08 14:14:44 16322599 some/other/object
2015-04-29 12:09:29 32768 yet-another-object.sh
Są one sortowane alfabetycznie według klucza, ale pierwsza kolumna jest czas ostatniej modyfikacji. Szybkie sort
będzie uporządkować je według daty:
$ aws s3 ls $BUCKET --recursive | sort
2015-04-29 12:09:29 32768 yet-another-object.sh
2015-05-05 15:36:17 4 an_object.txt
2015-06-08 14:14:44 16322599 some/other/object
tail -n 1
wybiera ostatni wiersz, a awk '{print $4}'
wydobywa czwartą kolumnę (nazwa obiektu).
$ aws s3 ls $BUCKET --recursive | sort | tail -n 1 | awk '{print $4}'
some/other/object
Last but not least, że spadnie do aws s3 cp
ściągnąć obiektu:
$ KEY=`aws s3 ls $BUCKET --recursive | sort | tail -n 1 | awk '{print $4}'`
$ aws s3 cp s3://$BUCKET/$KEY ./latest-object
Do czego będziecie używać skryptów? SDK, CLI czy coś innego? Także jak nazwać pliki z powrotem w S3 – error2007s
Co masz na myśli przez najnowsze? Czy pliki nie mają różnych nazw? – Shibashis
Czy używasz wersjonowania plików s3? – Shibashis