5

В AWS CLI как загрузить папку в виде файла tar.gz не создавая tar.gz локально?

Например, у меня есть папка в /var/test и я хочу загрузить ее в /tests/test1.tar.gz

Как мне сделать это, не превращая его в tar.gz локально? (Я хочу сэкономить локальное пространство, так как у меня мало места на жестком диске.)

1 ответ1

9

То, что вы действительно ищете, это не сохранение локального файла. Вы можете использовать каналы для отправки данных из 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 , а файл gzip (.tar.gz) выводится в stdout ...
  • ... который читается aws s3 cp - "s3://tests/test1.tar.gz" из stdin и отправлен в S3. - сообщает CLI AWS о необходимости копирования со стандартного stdin .

Это все еще выполняет операцию gzip локально, но не требует создания временного файла, так как весь поток передается прямо по сети.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .