O que você realmente procura não é salvar um arquivo local. Você pode usar canais para enviar os dados de tar
a gzip
to s3
sem salvar nada no disco.
tar c /var/test | gzip | aws s3 cp - "s3://tests/test1.tar.gz"
Quebrar isso (onde stdin
e stdout
referem-se aos fluxos de entrada / saída padrão por meio do pipeline ):
-
tar c /var/test
cria um arquivotar
de/var/test
e gera o resultado emstdout
... - ... que é lido por
gzip
destdin
e o arquivo gzipped (.tar.gz
) é enviado parastdout
... - ... que é lido por
aws s3 cp - "s3://tests/test1.tar.gz"
destdin
e enviado para o S3. O-
informa ao AWS CLI para copiar destdin
.
Isso ainda executa a operação gzip
localmente, mas não exige a criação de um arquivo temporário, já que o fluxo inteiro é enviado diretamente pela rede.