То, что вы действительно ищете, это не сохранение локального файла. Вы можете использовать трубы, чтобы отправить данные с tar
помощью, gzip
чтобы s3
ничего не сохраняя на диск.
tar c /var/test | gzip | aws s3 cp - "s3://tests/test1.tar.gz"
Разбиваем это (где stdin
и stdout
ссылаемся на стандартные потоки ввода / вывода через конвейер):
tar c /var/test
создаетtar
архив/var/test
и выводит его вstdout
...- ... который читается
gzip
изstdin
, а файл gzipped (.tar.gz
) выводится вstdout
... - ... который читается
aws s3 cp - "s3://tests/test1.tar.gz"
сstdin
и отправляется на S3. Он-
сообщает CLI CLI о необходимости копированияstdin
.
Это все еще выполняет gzip
операцию локально, но не требует создания временного файла, так как весь поток передается прямо по сети.