Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- # SPDX-License-Identifier: BSD-3-Clause
- ###
- # thiago t faioli - thiago.faioli@tcpip.net.br
- ###
- # Versao: 0
- # Data: 11 Agosto 2021
- #############################################
- # ACL Buckets
- # script usando AWS CLI para determinar lista de objetos e aplicar ACL Publica de Leiturua
- # Gerando lista de todos os Buckets
- BUCKETS_LISTA=(`aws s3api list-buckets --output text | grep BUCKETS | cut -f3`)
- for BUCKET_NOME in "${BUCKETS_LISTA[@]}"; do
- # Com o output em modo texto, consigo expor atributos mais simples para parsear ...
- # O atributo utilizado com referencia é grupo AWS padrao 'Todos (acesso público)
- # "http://acs.amazonaws.com/groups/global/AllUsers"...
- ACL_PUBLICA="http://acs.amazonaws.com/groups/global/AllUsers"
- BUCKET_DIR="/usr/local/ope/aws0/${BUCKET_NOME}"
- DATA="$(date +%F-%H%M%S)"
- MENSSAGEM0="${BUCKET_DIR}/${DATA}-mensagem0.log"
- if [ -d "${BUCKET_DIR}" ]
- then
- echo "Diretório ${BUCKET_DIR} existe" > /dev/null 2>&1
- else
- mkdir -p ${BUCKET_DIR}
- chmod 0754 ${BUCKET_DIR}
- fi
- # Gerando lista de objetos
- aws s3api list-objects --bucket ${BUCKET_NOME} --output text > ${BUCKET_DIR}/${DATA}_bucket-${BUCKET_NOME}.lista-objetos.log 2>&1
- # Refinando lista de objetos para conter apenas o path absoluto do key
- grep CONTENTS ${BUCKET_DIR}/${DATA}_bucket-${BUCKET_NOME}.lista-objetos.log |cut -f3 > ${BUCKET_DIR}/${DATA}_bucket-${BUCKET_NOME}.lista-path-objetos.log 2>&1
- #Dividindo Arquivos em pedços de 1G linhas
- split -l 1000000 -d ${BUCKET_DIR}/${DATA}_bucket-${BUCKET_NOME}.lista-path-objetos.log ${BUCKET_DIR}/${DATA}_bucket-${BUCKET_NOME}.lista-path-objetos.log >> ${MENSSAGEM0} 2>&1
- LISTA_DIVISAO=("$(ls ${BUCKET_DIR}/${DATA}_bucket-${BUCKET_NOME}.lista-path-objetos.log0?)")
- #Aplicando ACL Publica para lista de objetos
- for LISTA in "${LISTA_DIVISAO[@]}"; do
- for ARQ in $LISTA; do
- for OBJS in $(< $ARQ); do
- aws s3api put-object-acl --acl public-read --bucket=${BUCKET_NOME} --key $OBJS
- done
- done
- done
- done
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement