Supondo que você tenha um build CI carregando seus artefatos de implantação para S3, você teria uma estrutura de pastas semelhante a:
- meu balde
- -Projeto 1
- – my-war-1.war
- – my-war-2.war
- – my-war-3.war
- – projeto2
- – my-scripts-1.tar.gz
- – my-scripts-2.tar.gz
- – my-scripts-3.tar.gz
Você pode ter um cenário em que precisa recuperar a versão mais recente carregada. Isso pode ser facilmente alcançado com uma combinação de AWS CLI e jq .
Instale o AWS CLI e jq primeiro
# Run as root
yum -y install python-pip
pip install --upgrade awscli
wget http://stedolan.github.io/jq/download/linux64/jq
mv jq /usr/bin/
chmod 755 /usr/bin/jq
Em seguida, use o comando ListObjects para recuperar a lista de artefatos que correspondem ao padrão project2 / my-scripts e processá-la com jq para retornar o último elemento ordenado por data de modificação:
MY_SCRIPTS=`aws s3api list-objects --bucket my-bucket
--prefix project2/my-scripts
| jq '.Contents | sort_by(.LastModified)
| reverse | .[0] | .Key' | tail -1 | sed 's/"//g'`
aws s3api get-object --bucket my-bucket
--key ${MY_SCRIPTS} ~/my-scripts.tar.gz
Onde o comando list-objects retorna algo semelhante a
{
""CommonPrefixes"": []